Modif macro existante

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.

10classeur1ok.xlsm (42.89 Ko)

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

Merci

C'est parfait.

Bonne journée

Rechercher des sujets similaires à "modif macro existante"