Modif macro existante
E
Bonjour à tous,
J'ai une macro qui marche bien, mais elle ne fonctionne que sur la feuille ou ce trouve les données, ma question est d'exporter cette macro sur une autre feuille du meme classeur
Si ma macro est sur ma feuille 1 avec ma BDD tout est Ok
des que je mets ma macro en feuille 2 et que la BDD reste en feuille 1 ma macro est KO
je n'y arrive pas.
MERCI de votre aide.
Le fichier joint permet de mieux comprendre.
T
Bonjour,
D'où la nécessité de toujours "parenter" (pas trop Français ce mot !) les Ranges. Voici ton code modifié où les cellules font bien référence à la feuille "Feuil1" même si tu ouvre ta Form sur une autre feuille active :
'declaration des variables
Dim Colonne As Integer
Dim I As Integer
Dim J As Integer
Dim Fe As Worksheet
Private Sub UserForm_Initialize()
Set Fe = Worksheets("Feuil1")
'alimentation 1ere combobox
'initialisation des variables
Colonne = 2 'affectation du numero de colonne à 2 car premiere donnée en colonne B
'on realise une boucle qui va charger les noms des regions dans la liste deroulantes
Do While Fe.Cells(2, Colonne).Value <> "" 'tant qu il y a des valeurs dans la ligne 2, on les charges
UserForm1.ComboBox1.AddItem Fe.Cells(2, Colonne).Value
Colonne = Colonne + 1 'on ecremente le numero de colonne qfin de passer a la colonne de droite
Loop
End Sub
Private Sub ComboBox1_Change()
'initialisation des variables
I = 2
'on vide la liste deroulantes des villes afin de ne pas cumuler les recherches
ComboBox2.Clear
'on boucle pour recuperer chacunes des villes du pays selectionne
Do While Fe.Cells(2, I).Value <> ""
'on test que le nom de la region dans la liste deroulante soit identique
'on recupere son positionnement par le num de la colonne
If Fe.Cells(2, I).Value = ComboBox1.Value Then Colonne = Fe.Cells(2, I).Column
I = I + 1 'on ecremente le numero de colonne
Loop
'on initialise à 3 le numero de la ligne, la premiere ville se trouve en 3 eme ligne
J = 3
'on boucle les lignes pour recuperer les noms des villes
Do While Fe.Cells(J, Colonne).Value <> ""
' onc harge les villes dans la liste deroulante des villes
UserForm1.ComboBox2.AddItem Fe.Cells(J, Colonne)
J = J + 1
Loop
End Sub
E
Merci
C'est parfait.
Bonne journée