coller vba

R

Roger

Guest
Bonjour
J’aimerais savoir si il existe un code en vba pour coller une selection avec son contenu et la largeur des colonnes dans une nouvelle feuilles.
Merci [file name=sorti.zip size=51087]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/sorti.zip[/file]
 

Pièces jointes

  • sorti.zip
    49.9 KB · Affichages: 24

Jacques87

XLDnaute Accro
Bonjour Roger

J'ai regardé ton fichier hier soir et étant donné l'heure tardive je ne me suis pas attardé dessus
Ce matin j'ai pris un peu plus de temps et me suis posé une question
Dans ta macro tu écris
'Selection.Copy'
et
'Selection.PasteSpecial ....'
mais où vas tu chercher cette sélection, j'ai beau scruter le code du bouton 'Archiver' je ne trouve pas (ni ailleurs non plus)
Ta réponse pourrait m'aider à solutionner ton problème

A+
 
B

Blunet

Guest
Salut Roger,

Pour coller en VBA tu peux utiliser 'Selection.Paste'

Sheets('Feuil1').Select: Application.CutCopyMode = False

Range('A1').select: Selection.Copy
Range('G2').Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Ciao
 

Blunet

XLDnaute Occasionnel
Salut Tout le monde

Roger, Pour coller en VBA tu peux utiliser 'Selection.Paste'

Sheets('Feuil1').Select: Application.CutCopyMode = False

Range('A1').select: Selection.Copy
Range('G2').Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Jacques87, je me demande si les boutons utiliser par Roger ne sont pas simplement des objets shapes qu'il crée par la boîte à outils contrôle sans les gérer dans l'éditeur VBA, c'est pourquoi ils ne figurent pas dans le code.

Comment faire pour récuper la valeur du contrôle ?

Ciao
 

Jacques87

XLDnaute Accro
Bonjour Blunet,

Je comprends bien, et tu as raison de dire que ses boutons ne sont pas gérable directement per une procédure évennementielle VBA qui leur soit propre.
Toutefois comme il sont actifs ils sont donc associés à une macro.
Si tu fais référence aux différentes macros de son projet tu retrouveras les liens entre chacune d'entre elles el les boutons correspondants;
Alors ce que voulais dire, c'est que lorsque tu étudies la macro associée au bouton 'Archiver', tu peux lire
Selection.Copy
et plus loin
Selection.PasteSpecial ....
sans que Selection fasse référence à quelque chose que je puisse retrouver, ou alors je n'ai pas les yeux en face des trous.

Bon dimanche
 

Jacques87

XLDnaute Accro
Roger,

J'ai un mal fou à suivre le fonctionnement du bouton 'Archiver' (tes macros sont dans des modules différents et je ne vois pas d'appel de la première vers la seconde)
J'ai donc modifier ton code pour supprimer l'erreur qui était due au fait que l'appel de la feuille nouvellement créée ne se faisait pas correctement

Dis moi si cela te convient

Bonne soirée [file name=sortijour_20060129173046.zip size=45592]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/sortijour_20060129173046.zip[/file]
 

MichelXld

XLDnaute Barbatruc
bonsoir Roger , Jacques et Blunet

tu peux tester cette adaptation de ta macro 'Colle'

Sub Colle()
Range('Sortie').Copy
NouvelleFeuille

ActiveSheet.Range('A1').PasteSpecial Paste:=xlPasteColumnWidths, _
Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False

ActiveSheet.Range('A1').PasteSpecial Paste:=xlPasteAll, _
Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False
End Sub




bonne soirée
MichelXld
 

MichelXld

XLDnaute Barbatruc
bonsoir Roger , Jacques et Blunet

tu peux tester cette adaptation de ta macro 'Colle'

Sub Colle()
Range('Sortie').Copy
NouvelleFeuille

ActiveSheet.Range('A1').PasteSpecial Paste:=xlPasteColumnWidths, _
Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False

ActiveSheet.Range('A1').PasteSpecial Paste:=xlPasteAll, _
Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False
End Sub




bonne soirée
MichelXld
 

MichelXld

XLDnaute Barbatruc
bonsoir Roger

quelle version d'Excel utilises tu ? chez moi cela fonctionne sans soucis avec Excel2002

sinon meme si cela ne répond que partiellement à ta demande tu peux tester cette version simplifiée

Sub Colle()
Range('Sortie').Copy
NouvelleFeuille

ActiveSheet.Range('A1').PasteSpecial

Application.CutCopyMode = False
End Sub



bonne soirée
MichelXld
 

MichelXld

XLDnaute Barbatruc
bonsoir Roger

je ne sais pas si xlPasteColumnWidths est un argument disponible avec Excel 2000


si j'en crois ce lien (voir le message du 2005-01-27, 7:08 pm ) il peut aussi y avoir un bug avec cet argument

Ce lien n'existe plus


en suivant les conseils de Bernie Deitrick tu peux tester

Sub Colle()
Range('Sortie').Copy
NouvelleFeuille

ActiveSheet.Range('A1').PasteSpecial Paste:=8, _
Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False

ActiveSheet.Range('A1').PasteSpecial Paste:=xlPasteAll, _
Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False
End Sub



bon week end
MichelXld
 

Statistiques des forums

Discussions
312 345
Messages
2 087 473
Membres
103 553
dernier inscrit
jhnm