Macro copier-coller

Ravome -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je recherche une macro qui me permettrait de faire les actions suivantes dans excel:

Dans la même feuille excel:

1) Colonne A (où les noms des produits sont rangés par ordre alphabétique croissant): trouver les noms en double

2) Une fois un nom trouvé en double, vérifier la valeur ces cellules correspondantes en colonne L (ex: si les noms en double sont en cellule A5 et A6, alors la macro vérifie les cellules L5 et L6). Ensuite, 3 cas:

a) Les cellules en L sont vides ou identiques, alors ne rien faire.
b) Une des deux cellules est vide, alors copier le contenu de l'une dans l'autre
c) Les cellules sont remplies et différentes, alors me poser la question concernant l'action à effectuer.

Pouvez-vous SVP m'aider?

Merci d'avance.

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Combien de lignes sont à traiter?
    0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re bonjour

    du moment que la colonne A est triée, les doublons sont dans des lignes consécutives, ça simplifie

    Private Sub btOK_Click()
    Dim derli As Long, li As Long
    derli = Range("A" & Rows.Count).End(xlUp).Row
    For li = 2 To derli - 1
      If Range("A" & li) = Range("A" & li + 1) Then
        If Range("L" & li) <> Range("L" & li + 1) Then
          If Range("L" & li) <> "" And Range("L" & li + 1) <> "" Then
            MsgBox ("lignes " & li & "-" & li + 1 & " on fait quoi?")
          Else
            If Range("L" & li) = "" Then
              Range("L" & li) = Range("L" & li + 1)
            Else
              Range("L" & li + 1) = Range("L" & li)
            End If
          End If
        End If
      End If
    Next li
    End Sub

    bonne suite
    0
  3. Ravome
     
    Bonjour,

    Merci pour votre aide et désolé pour ma réponse tardive mais j'étais en déplacement.

    Il y a 6170 lignes à traiter. Je n'ai jamais créer de macro et donc je ne sais pas du tout comment faire. Pouvez-vous me guider pas à pas sur la démarche à suivre svp?

    Encore merci pour votre aide précieuse.
    0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    La démarche à suivre?
    1- ouvrir le classeur concerné,
    2- enregistrer sous "un autre nom"
    3- Tapez ALT+F11
    4- dans la fenêtre Visual Basic Editor, Insertion/Module
    5- copiez-collez le code de ccm81 (salutations!)
    6- remplacer la ligne de code :
    Private Sub btOK_Click()
    par :
    Sub test()

    7- fermer la fenêtre Visual Basic Editor
    8- ALT+F8, sélectionner "test" puis cliquer sur Exécuter
    9- attendre le résultat qui ne devrait plus tarder...
    0