Macro copier-coller

Fermé
Ravome - 8 mars 2012 à 15:03
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 15 mars 2023 - 14 mars 2012 à 10:22
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.


A voir également:

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 15 mars 2023 2 712
8 mars 2012 à 16:12
Bonjour,

Combien de lignes sont à traiter?
0
ccm81 Messages postés 10559 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 mars 2023 2 337
8 mars 2012 à 16:25
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
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 15 mars 2023 2 712
14 mars 2012 à 10:22
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