Exécuter une macro sans changer le nom d'un classeur utilisé

Bonjour à tous ,

J'ai un petit soucis dans ma macro et j'aurais besoin d'aide

J'ai une macro que je copie colle dans mon fichier "S1309.xlsx" et que je lance et qui marche.

J'aimerais pouvoir par exemple la copier coller sur "S1310.xlsx" de la semaine prochaine ou "S1311.xlsx" de celle d'après sans devoir changer les 3 bouts de code suivant que j'ai dans ma macro:

'Récupérer la 1ère ligne du fichier "art acif base itc.xlsx"

Windows("art actif base itc.xlsx").Activate

Rows("1:1").Select

Range("L1").Activate

Selection.Copy

Windows("S1309.xlsx").Activate

Rows("1:1").Select

Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

ActiveSheet.Paste

et dans:

'Récupération de la formule de la colonne N

Windows("S1309.xlsx").Activate

Sheets("art sans doublon").Range("N2:N" & Range("A65536").End(xlUp).Row).Select

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],[COMPILATION_COUVERTURE.xls]BASE!C7:C60,34,FALSE)"

Selection.FillDown

et dans:

'Copier la liste de choix

Windows("art actif base itc.xlsx").Activate

Sheets("Listes de choix").Select

Sheets("Listes de choix").Copy Before:=Workbooks( _

"S1309.xlsx").Sheets(1)

Merci de m'aider

Bonjour

Sans trop regarder ton code, "S1309.xlsx est le fichier qui contient la macro ?

Si oui remplaces la ligne par (pas testé)

ThisWorkbook.Activate

Non ça ne marche pas

Bonjour

Si personne d'autre ne te fournit une solution il faudra que tu postes tes fichiers pour tester


Bonjour

Essayes cette macro : Peut être encore à simplifier

Il faut que tu remplaces "Ma feuille" et "La feuille" par leurs vrais noms

Sub test()

  'Récupérer la 1ère ligne du fichier "art acif base itc.xlsx"
  Workbooks("art actif base itc.xlsx").Sheets("[surligner=#FFFF80]La feuille").Rows(1).Copy
  With ThisWorkbook
    .Sheets("Ma feuille").Rows(1).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
                        SkipBlanks:=False, Transpose:=False
    .Sheets("Ma feuille").Paste
    .Sheets("art sans doublon").Range("N2:N" & Range("A65536").End(xlUp).Row).FormulaR1C1 = _
                          "=VLOOKUP(RC[-2],[COMPILATION_COUVERTURE.xls]BASE!C7:C60,34,FALSE)"
    'Copier la liste de choix
    Workbooks("art actif base itc.xlsx").Sheets("Listes de choix").Copy Before:=.Sheets(1)
  End With
End Sub

J'ai pas compris ce que tu veux signifier "Ma feuille" et "La feuille". Est ce qu'il faut que je les déclare ou autre au début

J'aurais aimais poster mes classeurs mais ils font plus de 33 500 ko

Sinon j'ai pensé à mettre un boutton et qu'il me demande le nom du fichier et qu'il l'éxécute après mais je sais pas comment traduire ses mots en code

Bonjour

Dans ton classeur "art actif base itc.xlsx" tu récupères la ligne 1 de la feuille ?????? ("La feuille")

Et cette ligne tu la copies dans ton classeur dans la feuille ????? ("Ma feuille")

A la place des ? tu y mets les bons noms et dans la macro tu copies ces noms à la place de "La feuille" et "Ma feuille"

Je ne sais comment te le dire autrement

Dans ton classeur tu as une feuille "art sans doublon" si c'est la même dans laquelle tu copies la ligne 1, alors remplaces "Ma feuille" par "art sans doublon"

Rechercher des sujets similaires à "executer macro changer nom classeur utilise"