Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 utiliser une macro pour copier des cellules d'un classeur à une autre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

whiteshark

XLDnaute Nouveau
Bonjour à tous,
Pour commencer je suis un débutant dans le VBA, vraiment débutant. J'ai souvent du mal à comprendre les exemples qui sont donnés.
J'utilise l'enregistreur de macro pour réussir à me dépatouiller.
Et donc mon problème est le suivant :
J'ai deux classeurs excel ouvert le classeurA et le classeurB et je souhaite utiliser une macro pour copier certaine cellules de la feuilleA1 du classeurA vers d'autres cellules de la feuilleB1 du classeurB. Voici mon code.

Sub copier_coller_rendu()
'
' copier_coller Macro
'

'
Application.ScreenUpdating = False

Sheets("feuilleA1").Select
Range("D1").Select
Selection.Copy
Windows("classeurB.xlsm").Activate
Sheets("feuilleB1").Select
Range("C1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("ClasseurA.xlsm").Activate
Range("D2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("classeurB").Activate
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("classeurA").Activate
Range("D3").Select
Application.CutCopyMode = False
Selection.Copy
Windows("classeurB").Activate
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.ScreenUpdating = True

End Sub

La macro marche très bien sauf que mon problème est que si le classeurB ne changera jamais de nom, ce n'est pas le cas du classeurA. Le classeurA est en lecture seul et sera utilisé à de nombreuse reprise mais en étant enregistré sous différents noms. Et là ma commande Windows("classeurA").Activate ne marche plus. Donc ma question est y aurait-il un moyen de rendre la macro plus "générale" pour qu'elle fonctionne quelque soit le nom du classeurA ?

Voilà, j'espère avoir été assez claire.

Merci pour votre aide
 
Bonjour,
Si j'ai bien compris…..
Macro à exécuter dans les "ClasseurA"
VB:
Sub copier_coller_rendu()
    Application.ScreenUpdating = False
    ThisWorkbook.Sheets("FeuilleA1").[D1:d3].Copy
    Workbooks("ClasseurB.xlsm").Sheets("FeuilleB1").[c1].PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
 
Dernière édition:
Bonsoir le fil

Une variante (sans copier/coller et en passant par un array)
VB:
Sub CopierColler_Mais_Sans_CopierColler()
Dim t
Application.ScreenUpdating = False
t = ThisWorkbook.Sheets("FeuilleA1").[D1:D3].Value
Workbooks("ClasseurB.xlsm").Sheets("FeuilleB1").[C1].Resize(UBound(t, 1)).Value = t
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
315
Réponses
10
Affichages
547
Réponses
2
Affichages
281
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…