Rajouter plusieurs lignes automatiques vba

katyHan Messages postés 7 Statut Membre -  
Frenchie83 Messages postés 2254 Statut Membre -
Bonjour,
merci de bien vouloir m'apporter votre aide. Ma formule vba ci-jointe me permets d'ajouter une ligne supplémentaire à un tableau. Comment la modifier pour en ajouter trois ou quatre ?

d = 0
For i = 9 To 39
n = 0 'nbre d'intervention du même agent dans la même journée
For j = 3 To 300 Step 2
If fg.Cells(i, j).Value = Target Then
n = n + 1
If n = 1 Then
lgn = i - 2 + n + d
Else
fi.Range(i + d & ":" & i + d).Insert shift:=xlDown
lgn = i - 2 + n + d
d = d + 1
End If
fi.Range("C" & lgn) = fg.Cells(2, j)
If fg.Cells(2, j) = "" Then
fi.Range("D" & lgn) = fg.Cells(4, j).End(xlToLeft)

5 réponses

  1. Maurice
     
    Bonjour
    Pour mettre plusieur ligne on doit mettre Rows
    Sub Macro2()
    D = 8
    Nlig = 4
        Rows(D & ":" & D + Nlig).Insert Shift:=xlDown
    End Sub
    

    A+
    Maurice
    0
    1. katyHan Messages postés 7 Statut Membre
       
      Merci pour cette contribution mais trop néophyte pour l'appliquer. Pouvez-vous m'éclairer sur l'application de cette formule ?
      0
  2. katyHan Messages postés 7 Statut Membre
     
    https://www.cjoint.com/c/EFCtFJKupfw

    Ok. voilà l'adresse du lien du fichier. J'ai juste mis quelque colonnes du planning qui en compte plus de 200 avec 20 sites.

    Merci de votre aide.
    0
  3. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour
    je vous ai mis le choix du nombre de ligne à ajouter en cellule D6
    https://www.cjoint.com/c/EFDhvfJF3Nw
    Dans votre code, il y a un autre problème que, ne connaissant pas la structure du fichier complet, je n'ai pas oser corriger . En effet à chaque insertion de ligne, le total se décale du même nombre de ligne vers le bas. Il vous faut ajouter en début de code, l'action de supprimer toutes les lignes après le dernier jour du mois et recréer les formules "SOMME" sur la ligne suivante.
    Cdlt
    0
    1. katyHan Messages postés 7 Statut Membre
       
      Merci beaucoup !!! Justement, votre suggestion est très intéressante. Comment faire justement pour ne pas avoir de lignes à l'infini en bas de tableau?
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Frenchie83 Messages postés 2254 Statut Membre 339
     
    bonjour
    En faisant une boucle, on répète l'action d'insérer autant de fois qu'on le désire
    For l = 1 To 5 'on répète l'insertion de ligne
        fi.Range(i + d & ":" & i + d).Insert Shift:=xlDown
    Next l

    A tester
    Cdlt
    -1
    1. katyHan Messages postés 7 Statut Membre
       
      Merci.
      J'ai testé mais il semble que je ne sache pas l'insérer correctement. où dois-je mettre cette formule précisément dans ma macro?
      0
    2. Frenchie83 Messages postés 2254 Statut Membre 339
       
      remplacez la ligne fi.Range(i + d & ":" & i + d).Insert Shift:=xlDown
      par les 3 lignes
      For l = 1 To 5 'on répète l'insertion de ligne
          fi.Range(i + d & ":" & i + d).Insert Shift:=xlDown
      Next l

      cdlt
      0
    3. katyHan Messages postés 7 Statut Membre
       
      Merci. ça marche bien mais pas pour ce que je voudrais faire. La formule permet effectivement l'insertion de ligne mais les informations sont répétées alors que je récupérais des informations différentes auparavant.
      En fait, ma macro me permet de récupérer des informations dans un planning général que je retranscris dans un planning individuel. Jusque là, je pouvais prendre en compte deux vacations par jour. Je voudrai pouvoir en mettre plus.
      0
    4. Frenchie83 Messages postés 2254 Statut Membre 339
       
      Votre demande initiale:
      Ma formule vba ci-jointe me permets d'ajouter une ligne supplémentaire à un tableau. Comment la modifier pour en ajouter trois ou quatre ? ma réponse correspondait à la demande.
      Le problème, n'ayant pas votre code en entier (ou sont les next i et next j, il manque un end if), ni la structure du fichier, difficile d'imaginer ce que vous attendez.
      Peut-être que votre code n'est pas adapté à ce que vous voulez faire et qu'il faut le revoir.
      Pour gagner du temps, pouvez-vous mettre un extrait de votre fichier sans données sensibles (avec la macro complète) sur cjoint.com en expliquant bien ce que vous voulez ?
      cdlt
      0
    5. katyHan Messages postés 7 Statut Membre
       
      https://www.cjoint.com/c/EFCtFJKupfw

      Ok. voilà l'adresse du lien du fichier. J'ai juste mis quelque colonnes du planning qui en compte plus de 200 avec 20 sites différents.

      Merci de votre aide.
      0