PDA

Voir la version complète : Excel VBA



Neo_13
15/07/2008, 11h59
Salut les coincoins

Je veux faire un truc simple et après 2 heures, j'ai envie de suicider mon pc...

Je veux copier une feuille d'un classeur vers un autre classeur, sans liaison. Un bete copier-coller de valeur et de graphique (qui peuvent etre transformés en image au besoin) dans un classeur créé pour l'occasion (et si possible pas enregistré ni nommé ni rien... un bete workbook.add quoi de sorte que le user choisisse lui même le nom de fichier et l'emplacement)



Private Sub CommandButton1_Click()

UserForm2.Hide

Sheets("Export").Copy

End Sub

Fonctionne (c'est assez con hein, mais il fait tout tout seul, création, copy tout) mais la copie contient en fait des liens vers l'original, ce que je ne souhaite pas.

Merci de votre attention.

Bibeuf
15/07/2008, 12h13
Salut les coincoins

Je veux faire un truc simple et après 2 heures, j'ai envie de suicider mon pc...

Je veux copier une feuille d'un classeur vers un autre classeur, sans liaison. Un bete copier-coller de valeur et de graphique (qui peuvent etre transformés en image au besoin) dans un classeur créé pour l'occasion (et si possible pas enregistré ni nommé ni rien... un bete workbook.add quoi de sorte que le user choisisse lui même le nom de fichier et l'emplacement)


Fonctionne (c'est assez con hein, mais il fait tout tout seul, création, copy tout) mais la copie contient en fait des liens vers l'original, ce que je ne souhaite pas.

Merci de votre attention.

salut,

proposition :

deplacer une feuille
cocher "créer une copie"
copie toute la feuille nouvellement copier
collage valeur

Neo_13
15/07/2008, 12h16
salut,

proposition :

deplacer une feuille
cocher "créer une copie"
copie toute la feuille nouvellement copier
collage valeur
C'est gentil, mais j'ai besoin que ça se passe en VBA, comme le titre du topic le laisse penser.

Bibeuf
15/07/2008, 12h25
C'est gentil, mais j'ai besoin que ça se passe en VBA, comme le titre du topic le laisse penser.

humm,

en créant une macro du devrait avoir le code du "deplacer feuille en créant une copie"
sinon je maitrise mal VBA, reste les excellabo.net ou autre

courage

tantal
15/07/2008, 12h26
Bonjour,

A priori il ne faut pas oublier le .Select



Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 15/07/2008 par

'
Sheets("Feuil1").Select
Sheets("Feuil1").Copy
End Sub


Ou pour un classeur deja existant :



Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 15/07/2008 par

'
Sheets("Feuil1").Select
Sheets("Feuil1").Copy Before:=Workbooks( _
"destination.xls").Sheets(1)
End Sub

Neo_13
15/07/2008, 13h23
Ya pas besoin du select, par contre, ça copie avec liaison, et je veux sans liaison.

Neo_13
15/07/2008, 13h29
Je me rend à l'évidence : c'est impossible...

Ok merci

Arkaon
15/07/2008, 13h36
Salut,

Ceci pourra peut-être t'aider : http://www.developpez.net/forums/archive/index.php/t-136760.html

tantal
15/07/2008, 13h39
Sauf à faire un copier/collage special de tout le tableau




Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Neo_13
15/07/2008, 13h44
Mais si je fais un collage spécila, c'est OK pour les valeurs mais il ne colle pas les graphiques du coup...

Du coup, ça va etre collage simple et avertissement dans la notice : Surtout cliquer sur "ne pa mettre à jour" à l'ouverture du ficheirs.

Arkaon
15/07/2008, 13h46
La solution de copier la feuille puis de remplacer les formules par les valeurs ne convient pas ?



Function SaveClasseur()
Dim ClasseurSource As Workbook
Dim ClasseurCible As Workbook

Set ClasseurSource = ActiveWorkbook

ClasseurSource.Sheets(3).Copy 'Copie la feuille compléte..
Set ClasseurCible = ActiveWorkbook 'Au cas ou .. pour garder un accés au nouveau classeur

'Suppression des formules
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Cells(1, 1).Select
End Function(extrait du lien plus haut)

ylyad
15/07/2008, 17h30
Neo_13: ce que tu ne dis pas, c'est que la feuille que tu veux copier contient des liaisons vers autre chose (une autre feuille de ce classeur ou un autre classeur), n'est-ce pas? Si oui, cf. Arkaon.

Neo_13
15/07/2008, 21h42
ok merci

Neo_13
26/03/2009, 14h24
Nouveau problème

Par une macro, je (mon chef en fait, mais à la fin c'est pour ma gueule quand même) remplis une colone avec des =LC(-1)*. Et ce con écrit #REF. Et si je fait F2 entrée, il écrit la bonne valeur.

*: pour les esprits taquins LC c'est la résultante de RC dans la macral.