Convertir dans un autre classeur [Résolu/Fermé]

Signaler
-
 KatyKat -
Bonjour à tous,

j'ai un classeur (outil.xlsx) dans lequel je récupère le nom des classeurs ouverts et j'identifie celui qui m'intéresse en "D1"(toto.xlsx) de ma feuille "ZZZ". Je voudrai trouver une macro qui reprenne le contenu de "D1" (il est amené à changer régulièrement) pour convertir les données d'une colonne du classeur toto.xlsx, mais impossible de trouver...

Voici le code avec le nom du fichier (toto.xlsx) "en dur" :

Sub convertir()
'
Windows("toto.xlsx").Activate
Columns("E:E").Select
Selection.TextToColumns Destination:=Range("E1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
End Sub


Je voudrai remplacer toto.xlsx par le contenu de "D1".

Merci pour votre aide !

4 réponses

Messages postés
7275
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 février 2021
616
Bonjour,

Comme ceci, c'est élémentaire!

Range("D1").Value

non, ça ne fonctionne pas ! J'ai même essayé ça:

Sub convertir()
'
' convertir Macro
'

Windows("Sheets("ZZZ").Range("D1").Value").Activate
Columns("E:E").Select
Selection.TextToColumns Destination:=Range("E1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
End Sub

qui ne fonctionne pas non plus :(
Messages postés
7275
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 février 2021
616
En fait, je souhaite faire un convertir sur un fichier ouvert (dont j'ai identifié le nom en D1) qui ne doit pas être enregistré, car amené à être généré plusieurs fois par jours par différents utilisateurs. Donc pas de chemin...
Messages postés
7275
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 février 2021
616
Comme ceci:

Workbooks(Range("D1").Value).Worksheets("ZZZ").Activate
>
Messages postés
7275
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 février 2021

Non plus : Erreur d'execution 9 : L'indice n'appartient pas à la sélection :(
Messages postés
7275
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 février 2021
616
Cela fonctionne chez moi:

Jai 2 classeurs ouverts : Classeur1 qui contient ma macro et dans la cellule D1 de la Feuille1: Classeur2.xls
Et bien entendu le Classeur2

Ensuite je lance macro depuis la Feuille 1 du Classeur1:

Workbooks(Range("D1").Value).Worksheets("Feuil2").Activate


je me retrouve sur la Feuille2 du Classeur2

Voilà. Si tu as un problème, c'est que tu ne me dis pas tout. Ou que tu n'as pas respecté l'ordre que je viens de te décrire.
>
Messages postés
7275
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 février 2021

Effectivement, la worksheet était incorrecte ;) j'avais mis celle de départ, dans laquelle était le nom du fichier à convertir (donc ZZZ) et non celle d'arrivée (Sheet1).
Maintenant, ça fonctionne !
Un immense merci !