Comparaison de colonnes entre 2 feuilles et copie de valeurs

Novice_en_VBA -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je débute en VBA et je rencontre un problème. Ne connaissant pas beaucoup de fonctions, j'ai un problème pour résoudre l'exercice suivant.

Est-ce que qq'un peut m'aider s'il vous ^plaît.


Dans un classeur Excel, j'ai 2 feuilles.

La 1ere feuille qui comporte une colonne rempli de noms de villes.
La 2eme feuille qui comporte 2 colonnes ; la 1ere avec des noms de villes et la 2nd colonne avec le nombre d'hab.

Je voudrais faire une macro en VBA qui "lit" la 1ere colonne de la feuille 2 et qui compare chaque valeur de cette colonne avec les valeurs de la colonne de la feuille 1. Si des valeurs sont communes alors la valeur de la colonne 2 de la feuille 2 est écrit dans la colonne 2 (vide pour le moment) de la feuille 1.

C'est à dire que si des noms de villes de la feuille 2 sont présents aussi dans la feuille 1 alors le nb d'hab associé à cette ville est écrit dans la colonne 2 de la feuille 1.


Je vous remercie par avance pour votre aide. :)
A voir également:

3 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Ok, votre niveau VBA ou programmation est vraiment debutant ou ..?

En attendant:
A voir:
'https://www.commentcamarche.net/faq/36886-methode-find-dans-vba-recherche-de-donnees-sous-excel

Sub recherche()
    Dim sh As Worksheet, Cel As Range
    Dim Derlig As Long, Plage As Range, Ville As Range
    
    'Application.ScreenUpdating =False  'stop raffraichissement ecran
    Set sh = Worksheets("feuil2")
    With Worksheets("feuil1")
        Derlig = Range("A" & Rows.Count).End(xlUp).Row
        Set Plage = .Range("A2:A" & Derlig)     'mise en memoire liste colonne a
        For Each Cel In Plage
            'methode find, recherche la valeur exacte (LookAt:=xlWhole)
            Set Ville = sh.Columns(1).Find(what:=Cel, LookAt:=xlWhole)
            If Not Ville Is Nothing Then 'valeur trouvee
                Cel.Offset(, 1) = Ville.Offset(, 1)     'ecriture habitants
            End If
        Next
    End With
    Application.ScreenUpdating = True 'active raffraichissement ecran
    Set Plage = Nothing
    Set sh = Nothing
    Set Ville = Nothing
End Sub
1
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

résoudre l'exercice suivant.
En principe, si vous en etes étudiant, nous aidons a faire mais pas faire pour vous.

Pourquoi du VBA, une simple formule RECHERCHEV irait très bien?
0
Novice_en_VBA
 
Bonjour,

En fait, je ne suis pas étudiant, mais c'est un exercice perso que je souhaite faire.

Tel que présenté, je l'ai s'simplifié pour démarrer. Du coup effectivement, le VBA semble disproportionné peut-être.
0