Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Nouveau Candidat au Club
    Si une cellule est égale à une autre alors copier cellule vers une autre
    Bonjour,

    J'ai deux feuilles excel (Feuil1 et Feuil2)
    Dans ma feuil1 j'ai un listing de numéros qui ne se suivent pas forcément (colonne B, partant de B5 ) et des commentaires correspondant à chaque numéro (colonne C, partant de C5)
    J'ai crée une macro qui après renseignement du formulaire, rempli des valeurs numériques dans les cellule B17 à B28 de ma feuil2
    J'aimerais s'il est possible que lorsque qu'un des numéro de ma feuil2 correspond à un numéro de la liste de ma Feuil1 le commentaire qui lui est propre soit copier/coller dans la cellule C17 à C28 correspondant de la Feuil2.
    J'ai pas mal cherché et fait quelques essais avec la fonction FIND mais je ne m'y connais pas assez et je n'obtiens rien de concluant.

    Pourriez-vous m'aider ?

    Merci d'avance,
    Morgan

  2. #2
    Membre émérite
    Bonjour Morgan, bonjour le forum,

    Essaie comme ça :

    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
    Sub Macro1()
    Dim O1 As Worksheet 'déclare la variable O1 (onglet Feuil1)
    Dim O2 As Worksheet 'déclare la variable O2 (onglet Feuil2)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
    Dim I1 As Integer 'déclare la variable I1 (Incrément Feuil1)
    Dim I2 As Byte 'déclare la variable I2 (Incrément Feuil2)
     
    Set O1 = Worksheets("Feuil1") 'défint l'onglet O1
    Set O2 = Worksheets("Feuil2") 'défint l'onglet O2
    DL = O1.Cells(Application.Rows.Count, "B").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet o1
    TV = O1.Range("B5:C" & DL) 'définit le tableau des valeurs TV
    For I2 = 17 To 28 'boucle 1 : sur les cellules de B17 à B28 de la colonne B de l'ongelt O2
        For I1 = 1 To UBound(TV, 1) 'boucle 2 : sur toutes les données de la première colonne du tableau des valeurs TV
            'si la donnée ligne I1, colonne 1 de TV est égale à la cellule ligne I2 colonne B de l'onglet O2
            'la cellule ligne I2 colonne C de l'onglet O2 prend la valeur de la donnée ligne I1 colonne 2 de TV: sort de la boucle 2
            If TV(I1, 1) = O2.Cells(I2, "B") Then O2.Cells(I2, "C").Value = TV(I1, 2): Exit For
        Next I1 'prochaine ligne de la boucle 2
    Next I2 'prochaine cellule de la boucle 1
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre expert
    Bonjour,

    Tu n'as pas besoin de macro pour cela, il suffit que tu places la formule suivante en C17 :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =SIERREUR(RECHERCHEV($B17;Feuil1!$B$5:$C$18;2;FAUX);"")

    puis recopie jusqu'en C28.

    Cordialement.

  4. #4
    Nouveau Candidat au Club
    Merci à tous les deux pour vos réponses aussi rapides.
    Je vois l'idée de la macro et je la garde de côté pour d'autres projets mais je vais opter pour la formule je n'y avais pas pensé et ça sera aussi simple

    Merci encore.
    Morgan