Comparaison de 2 valeurs avec plusieurs lignes

Résolu
Darken55 Messages postés 4 Statut Membre -  
Darken55 Messages postés 4 Statut Membre -
Bonjour,

Je cherche à créer une macro et je suis bloqué depuis un certain temps sur un point précis.
Je souhaite comparer les cellules « A19 et B19 » sur la feuille « stockenregistrment » avec les cellules « A et B » de la feuille « stockencours ».
S’il y a correspondance de copier la ligne sur « stockencours » pour le coller ailleur.

Pour le moment je suis bloqué avec le code que j’ai fait ci-dessous ; celui si compare bien les données mais prend uniquement en compte la ligne 6 de la feuille « stockencours » je n’arrive pas à ce que cela compare pour chaque ligne (jusqu’à 500).

If Worksheets("stockenregistrement").Range("A19").Value = Worksheets("stockencours").Range("A6").Value And Worksheets("stockenregistrement").Range("B19").Value = Worksheets("stockencours").Range("B6").Value Then
Sheets("stockencours").Select
Range("A6:G6").Select
Selection.Cut
Sheets("stockterminé").Select
Rows("6:6").Select
Selection.Insert Shift:=xlDown
Sheets("stockenregistrement").Select
Range("D19:E19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("stockterminé").Select
Range("H6").Select
ActiveSheet.Paste
Range("C6").Select
End If

Avez-vous des idées pour m’aider ?

Merci,

Cordialement,

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    comparer les cellules « A19 et B19 »
    Que ces cellules avec toutes les lignes de stockencours!!!!!!!!!
    0
    1. Darken55 Messages postés 4 Statut Membre
       
      Bonjour,

      Pardon mais je n'ai pas compris,

      Je cherche sur la feuille "stockencours" la ligne qui a les même valeurs que dans les cellules A19 et B19 de la page "stockenregistrement".

      Juste la première partie est importante:
      If Worksheets("stockenregistrement").Range("A19").Value = Worksheets("stockencours").Range("A6").Value And Worksheets("stockenregistrement").Range("B19").Value = Worksheets("stockencours").Range("B6").Value Then
      Sheets("stockencours").Select
      Range("A6:G6").Select
      Selection.Cut


      A la place de la ligne 6 de "stockencours" je cherche à savoir sur quelle ligne (entre 6 et 500) nous avons ces 2 même cellules identique.

      Merci,
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, il me semble donc que tu dois écrire une boucle avec un indice qui va de 6 à 500, et utiliser cet indice à la place du nombre 6.
    0
    1. Darken55 Messages postés 4 Statut Membre
       
      Bonjour,

      Merci pour vos conseils!
      0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Quelques bizarreries a cause de vos select (que j'ai laisses), une facon de faire:

    Sub test()
        'Darken55 - 11 juin 2019 ? 15:32
        'Bonjour,
        'Je cherche ? cr?er une macro et je suis bloqu? depuis un certain temps sur un point pr?cis.
        'Je souhaite comparer les cellules ? A19 et B19 ? sur la feuille ? stockenregistrment ? avec les cellules ? A et B ? de la feuille ? stockencours ?.
        'S?il y a correspondance de copier la ligne sur ? stockencours ? pour le coller ailleur.
        'Pour le moment je suis bloqu? avec le code que j?ai fait ci-dessous ; celui si compare bien les donn?es mais prend uniquement en compte la ligne 6 de la feuille ? stockencours ? je n?arrive pas ? ce que cela compare pour chaque ligne (jusqu?? 500).
        With Worksheets("stockencours")
             derlig = .Range("A" & Rows.Count).End(xlUp).Row        'derniere cellule non vide colonne A
             RA = Worksheets("stockenregistrement").Range("A19").Value
             RB = Worksheets("stockenregistrement").Range("B19").Value
             'boucle sur les lignes
             For n = 6 To derlig
                If RA = .Range("A" & n).Value And RB = .Range("B" & n).Value Then
                    .Activate
                    LT = LT + 1
                    .Range("A" & n & ":G" & n).Select
                    Selection.Cut
                    Sheets("stocktermin?").Select
                    Rows("6:6").Select
                    Selection.Insert Shift:=xlDown
                    Sheets("stockenregistrement").Select
                    Range("D19:E19").Select
                    Application.CutCopyMode = False
                    Selection.Copy
                    Sheets("stocktermin?").Select
                    Range("H" & n).Select
                    ActiveSheet.Paste
                    'Range("C6").Select
                End If
            Next n
        End With
    End Sub
    
    0
    1. Darken55 Messages postés 4 Statut Membre
       
      Bonjour,

      Parfait, semble fonctionner, merci beaucoup pour votre aide!

      Cordialement,
      0