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 :

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
ensuite je voulais utiliser ma variable nom_fichier (variable publique) pour faire :
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