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
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