XL 2013 Insertion de plusieurs lignes en fonction d'une valeur avec une incrémentation

Ray97

XLDnaute Nouveau
Bonjour,

Je reviens vers vous pour une demande d'aide. Je veux insérer des lignes en fonction d'un nombre de cellules qui à sur une colonne ici la colonne U. je veux que dans la colonne AG je puisse faire une incrémentation du nombre de ligne insérer. et je veux que les lignes copient les mêmes informations que celui du précédent sauf pour le nom ,prénom, date de naissance et age et le numéro de foyer. je veux que à chaque fois que j’insère une ligne ça fasse la même chose (les valeurs changent). Et tous ça en cliquant sur le bouton Menu. Dans mon code j'ai réussi à ajouter une ligne par ligne et à faire copier les lignes sauf pour celui de l’incrémentation.

Merci pour votre attention.
 

Pièces jointes

  • Classeur2.xlsx
    28.3 KB · Affichages: 8

Ray97

XLDnaute Nouveau
Bonjour le forum,

Pouvez vous m'aider sur le complément de mon code?
J'ai réussi à mettre les lignes mais je n'arrive pas à copier la ligne précédente sur les lignes insérées et à faire une incrémentation sur un colonne.

Merci d'avance pour votre aide.

Code:
 Application.ScreenUpdating = False
 'déclaration des variables
    Dim message As String, title As String
    Dim nblg As Byte
    Dim I As Long
 
    I = ActiveCell.Row
  'on prépare les infos pour le message box
    message = "Entrez le nombre de lignes"
    title = "Insérer lignes"
    'demande le nombre de lignes à insérer
    nblg = Application.InputBox(message, title, Type:=1)
    'test pour sortir au cas ou l'utilisateur rentre 0 ligne
    If nblg = 0 Then MsgBox "Le nombre de lignes est à zéro": End
 
    'copie de la dernière ligne remplie
    Rows(I).Copy
 
    Rows(I).Resize(nblg, 1).Insert Shift:=xlShiftDown 'Insertion par copie des nouvelles lignes
    Rows(I + 1).Resize(nblg).ClearContents 'on efface le contenu des lignes copiées pour avoir des lignes vierges
 L = Range("U" & nblg)
    LD = nblg + 1
    LF = nblg + L - 1
     NPF = 1
            LD = LD - 1
               LF = LF
            For m = LD To nblg
                Range("AG" & m) = NPF
                NPF = NPF + 1
         Next m
        nblg = nblg + L
    Range("B" & nblg & ":D" & nblg).Copy Range("B" & LD & ":D" & LF)
    Range("L" & nblg & ":M" & nblg).Copy Range("L" & LD & ":M" & LF)
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG