XL 2016 VBA, compléter des lignes vides par une valeur incrémentale

  • Initiateur de la discussion Initiateur de la discussion ydemarin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ydemarin

XLDnaute Nouveau
Bonjour,

J'ai besoin d'aide pour finaliser un outil de gestion de stock.
Ma procédure permet de copier le stock d'un ancien système vers un nouveau.

Pour ce faire, j'avais pris le parti de renuméroter toutes les lignes de stock avec un nouveau N° de palette.
Cependant en pratique, dans certains cas j'ai déjà un numéro de palette et dans d'autres cas je n'en ai pas.
Cela dépend du type d'emplacement.
Il faut m'éviter de renuméroter les palettes déjà étiquetées (gain de temps)

J'ai besoin donc de revoir ma procédure mais je bloque.

résultat attendu : Je cherche à renseigner les lignes pour lesquelles le N° de palettes est vide en colonne C par un nouveau de palette mais il doit être unique à chaque fois. (d'ou l'incrémentation depuis un N° en Feuil3)
Pour les lignes avec un n° de palette déjà existant, je dois le conserver tel quel.

J'avais imaginer trier et filtrer pour ne travailler que sur les lignes vides mais les données étant vivantes font que les lignes changent tout le temps et je n'y parviens pas.

J'imagine qu' une boucle peut répondre à mon besoin mais je suis trop nul pour y parvenir.

Quelqu'un pourrait-il m'aider svp?

Fichier en pj.

Merci
 

Pièces jointes

Bonjour ydmarin

Si c'est le n° de la colonne B, il est déjà inscrit dans la feuille 2. Et là je ne comprend pas "créer un nouveau numéro de palette"?? 🙄

En feuille1 le dernier numéro est P24473440 (dernière palette), logiquement tu devrait partir depuis ce numéro et incrémenter de 1.
 
Dernière édition:
Bonjour pierrejean 🙂

En partant de ton idée.

VB:
Option Explicit

Sub Nouveau_Numero()
Dim i As Long, tbl, num

    Application.ScreenUpdating = False
  'Inscrire le numéro de B2 à A2
    num = Sheets(3).Range("a2").Value
 
    With Sheets(1)
        tbl = .Range("e2:e" & .Range("e" & Rows.Count).End(xlUp).Row)
        For i = LBound(tbl, 1) To UBound(tbl, 1)
            If Trim(tbl(i, 1)) = "" Then
               tbl(i, 1) = "P" & num
               num = num + 1
            End If
        Next
     
        .Range("e2:e" & Range("e" & Rows.Count).End(xlUp).Row) = tbl
    End With
    'Et là c'est le dernier numéro incrémenté
    Sheets(3).Range("a2") = num
End Sub

numero.gif
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
534
Retour