Insertion de plusieurs lignes en fonction d'une valeur avec une incrementation
Résolu/Fermé
Ray974
Messages postés
51
Date d'inscription
mardi 2 juillet 2019
Statut
Membre
Dernière intervention
2 août 2019
-
2 juil. 2019 à 14:59
Ray974 - 15 juil. 2019 à 12:24
Ray974 - 15 juil. 2019 à 12:24
A voir également:
- Insertion de plusieurs lignes en fonction d'une valeur avec une incrementation
- Fonction si et - Guide
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Insertion signature word - Guide
- Insertion liste déroulante excel - Guide
3 réponses
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
2 juil. 2019 à 16:18
2 juil. 2019 à 16:18
Bonjour,
C'est cette cellule qui donne le nombre de lignes??
Y a un bleme avec ceci entre autre:
Pourquoi de : ald &!!!!!!
Pourquoi une plage de code qui devrait vous servir est en commentaire??
'i = Range("C6").Value
C'est cette cellule qui donne le nombre de lignes??
Y a un bleme avec ceci entre autre:
'Rows("7:" : 6 + i : "").Select
Pourquoi de : ald &!!!!!!
Pourquoi une plage de code qui devrait vous servir est en commentaire??
Ray974
Messages postés
51
Date d'inscription
mardi 2 juillet 2019
Statut
Membre
Dernière intervention
2 août 2019
10 juil. 2019 à 16:17
10 juil. 2019 à 16:17
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.
Merci.
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.
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)
Merci.
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié le 10 juil. 2019 à 17:42
Modifié le 10 juil. 2019 à 17:42
Bonjour,
Ok, je regarde la chose
Ok, je regarde la chose
Sub test() 'd?claration des variables Dim message As String, title As String Dim nblg As Long Dim I As Long 'Application.ScreenUpdating = False I = ActiveCell.Row 'on pr?pare les infos pour le message box message = "Entrez le nombre de lignes" title = "Insertion 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 LD = I + 1 LF = I + nblg Rows(LD & ":" & LF).Insert Shift:=xlShiftUp 'Insertion par copie des nouvelles lignes Range("B" & I & ":D" & I).Copy Range("B" & LD & ":D" & LF) Range("L" & I & ":M" & I).Copy Range("L" & LD & ":M" & LF) NPF = 1 LD = I LF = LF For m = LD To LF Range("AG" & m) = NPF NPF = NPF + 1 Next m End Sub
2 juil. 2019 à 16:28
le range ("C6 ").value c'est un exemple . je veux le généraliser pour qu'il ne soit pas que sur c6
par exemple sur la ligne 2 j'ai 5 dans la cellule c2 et je veux qu'il m'insert 5 lignes par la suite et en copiant les informations d'avant.
Pour le Rows("7:" : 6 + i : "").Select je n'arrive a pas le faire pour que sa marche dans une ligne quelconque.
et les plages en commentaire ,je testais les codes
2 juil. 2019 à 17:40
je veux le généraliser pour qu'il ne soit pas que sur c6
Tout a fait Thierry(connais pas le feminin), mais a quoi voyons nous que c'est une cellule aleatoire????
Pour le Rows("7:" : 6 + i : "").Select, ce n'est pas une ligne quelconque, mais pour que ca marche
ca devrait aller mieux et le select n'est necessaire
2 juil. 2019 à 21:05
je réexplique, j'ai un bouton qui insère des lignes , je veux que quand j'appuis ce bouton qu'il m'insère des lignes et le nombre de lignes à insérer et donner par une cellule qui correspond. exemple j'ai une famille qui a 3 membres de personne dans le foyer . la cellule contient le chiffre 3 donc quand j'appuis sur le bouton d'insertion il m'insère les 3 lignes en recopiant certains éléments de la ligne précédente. C'est ce que j'ai essayé de faire dans le code que j'ai envoyé ça marche pas. il me met pas les lignes au bon endroit.
2 juil. 2019 à 21:29
Sur que ce peut pas marcher.
Vous feriez mieux de mettre votre fichier à dispo pour que nous puissions comprendre d'ou sort la cellule qui donne le nombre de lignes à insérer.
Site pour partage, ci-joint.com ou mon-partage.fr
3 juil. 2019 à 10:00
vous trouverez le fichier en cliquant sur ce lien. Ne tenez pas compte de la feuille(archives)
https://mon-partage.fr/f/rhMQYqvl/ .
Merci