Macro pour ajouter numéro d'ordre

Bonjour à tous,

N'étant pas familier avec VBA je sollicite votre aide svp.

Colonne A = N° Ordre

Colonne B= N° client

Colonne C= Date de commande

Je souhaite que dans la colonne A la valeur de l'identifiant unique se copie dans la ligne juste en dessous si celle-ci est vide.

Concrètement on démarre la boucle à A2, si A3 est vide alors on y colle A2 jusqu'à la prochaine valeur de l'identifiant unique non vide où il faudrait donc copier cette nouvelle valeur et tester si la ligne suivante est vide pour coller cette valeur et ainsi de suite

Avant macro :

| N° Ordre | | N° client | | Date de commande |

| 5001 | | 101 | | 01/01/19 |

| VIDE | | 101 | | 14/03/19 |

| VIDE | | 101 | | 20/01/19 |

| 4002 | | 314 | | 12/02/19 |

| VIDE | | 314 | | 07/03/19 |

| 7114 | | 456 | | 17/05/19 |

| VIDE | | 456 | | 24/06/19 |

Résultat souhaité :

| Identifiant unique | | Bénéficiaire | | Date |

| 5001 | | 101 | | 01/01/19 |

| 5001 | | 101 | | 14/03/19 |

| 5001 | | 101 | | 20/01/19 |

| 4002 | | 314 | | 12/02/19 |

| 4002 | | 314 | | 07/03/19 |

| 7114 | | 456 | | 17/05/19 |

| 7114 | | 456 | | 24/06/19 |

Même si dans ma tête c'est clair je suis vraiment incapable de traduire mon raisonnement en VBA et je vous remercie à nouveau pour votre aide.

Bonjour,

Voici une proposition de macro :

Sub ajoutNumOrdre()
    maxLigne = Range("B" & Rows.Count).End(xlUp).Row 'On récupère la ligne la plus basse (dans la colonne B)
    For i = 1 To maxLigne 'On fait toute les lignes de 1 à la ligne max
        If (Range("A" & i).Value = "") Then 'Si la colonne A est vide
            Range("A" & i).Value = Range("A" & i - 1).Value 'J'indique la valeur de la cellule du dessus
        End If
    Next
End Sub

Le fichier avec la macro pour tester

20classeur1.xlsm (14.48 Ko)

Bonjour à tous

c'est faisable sans VBA en quelques clics

Voir http://www.excel-formations.fr/Trucs_astuces/ToucheF5.php thème Combler les trous d'un tableau

Pas bête oui !

Rechercher des sujets similaires à "macro ajouter numero ordre"