Bonjour à tous.
Je viens de m'inscrire et j'ai chercher sans succès une réponse à mon problème.
Je fait une macro de ventilation.
Pour commencer je souhaite ouvrir le classeur à ventiler puis faire diverses manip et ensuite revenir sur ce classeur que je n'ai pas fermé.
Je commence donc par :
ensuite je voulais utiliser ma variable nom_fichier (variable publique) pour faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 chemin_import.Caption = Application.GetOpenFilename("Fichiers Excel (*.xl*), *.xl*") ' attribue le choix à chemin_import Workbooks.Open Filename:=chemin_import.Caption ' ouvre le classeur choisi nom_fichier = ActiveWorkbook.Name ' attribue le nom du classeur à ventiler à la variable nom_fichier
workbooks(nom_fichier).activatel'ennui c'est que dès le départ ma variable nom_fichier ajoute un nombre à mon nom de fichier !!!
lorsque je met une msgbox de controle juste sous ma troisième ligne : MsgBox ActiveWorkbook.Name & " _ " & chemin_import.Captionj'obtiens en résultat pour le fichier toto : toto _ toto1 (puis à chaque nouvelle tentative toto2, toto3 ect ...
Je précise qu'a ce stade je n'ai encore créer aucune boucle ni aucune incrémentation.
voici le code complet de la macro qui s’exécute lorsque je clique sur le premier bouton de mon userform :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Private Sub B_import_Click() ' lance le choix du claseur a ventiler chemin_import.Caption = Application.GetOpenFilename("Fichiers Excel (*.xl*), *.xl*") ' attribue le choix à chemin_import If Left(chemin_import.Caption, 4) <> "Faux" Then ' vérifie qu'un nom de fichier a été choisi Workbooks.Open Filename:=chemin_import.Caption ' ouvre le classeur choisi nom_fichier = ActiveWorkbook.Name ' attribue le nom du classeur à ventiler à la variable nom_fichier MsgBox chemin_import.Caption & "////" & nom_fichier Workbooks(nom_fichier).Sheets(1).Activate ' selectionne la premiere feuille du classeur Dim var_col As Integer Dim var_critere As String var_col = 1 Do While Workbooks(nom_fichier).Sheets(1).Cells(2, var_col).Value <> "" ' récupére tous les entete de colonnes CB_critere.AddItem Workbooks(nom_fichier).Sheets(1).Cells(2, var_col).Value ' les ajoute à la combobox CB_critere. var_col = var_col + 1 Loop End If End Sub
Partager