Rajouter plusieurs lignes automatiques vba

Fermé
katyHan Messages postés 7 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 29 juin 2015 - 28 juin 2015 à 15:27
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 29 juin 2015 à 17:04
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

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
katyHan Messages postés 7 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 29 juin 2015
28 juin 2015 à 18:37
Merci pour cette contribution mais trop néophyte pour l'appliquer. Pouvez-vous m'éclairer sur l'application de cette formule ?
0
katyHan Messages postés 7 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 29 juin 2015
28 juin 2015 à 21:33
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
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
29 juin 2015 à 09:28
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
katyHan Messages postés 7 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 29 juin 2015
29 juin 2015 à 12:30
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
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
29 juin 2015 à 17:04
Voici la nouvelle version avec réajustement de la longueur de la feuille
https://www.cjoint.com/c/EFDpdnAWDbw
Cdlt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
28 juin 2015 à 18:21
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
katyHan Messages postés 7 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 29 juin 2015
28 juin 2015 à 18:32
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
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
28 juin 2015 à 18:47
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
katyHan Messages postés 7 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 29 juin 2015
28 juin 2015 à 19:09
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
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
28 juin 2015 à 20:17
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
katyHan Messages postés 7 Date d'inscription dimanche 28 juin 2015 Statut Membre Dernière intervention 29 juin 2015
28 juin 2015 à 22:00
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