Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Insertion ligne par macro

gourdin

XLDnaute Impliqué
Bonjour,

Je pense qu'il est mieux de lire la pièce jointe car difficile à expliquer sans l'exemple simplifié

Merci
 

Pièces jointes

  • forum_nov14.xls
    26 KB · Affichages: 39

JCGL

XLDnaute Barbatruc
Re : Insertion ligne par macro

Bonjour à tous,

En essai qui crée les lignes en F et G sur changement de la valeur en C et sans macro

A+ à tous
 

Pièces jointes

  • JC Liste Auto sur Valeur.xls
    67.5 KB · Affichages: 43

Modeste

XLDnaute Barbatruc
Re : Insertion ligne par macro

Bonjour gourdin,
Salut JC ,

Un petit bout de code qui ne mange pas de pain:
VB:
Sub recopie()
lig = 4
For r = 4 To [B50000].End(xlUp).Row
    Cells(lig, 7).Resize(Cells(r, 4).Value, 2).Value = Cells(r, 2).Resize(1, 2).Value
    lig = lig + Cells(r, 4).Value
Next r
End Sub
 

gourdin

XLDnaute Impliqué
Re : Insertion ligne par macro

Merci à vous deux

Sur mon fivhier, le code macro ne fonctionne pas (erreur execution) à la ligne :

Cells(lig, 7).Resize(Cells(r, 4).Value, 2).Value = Cells(r, 2).Resize(1, 2).Value
 

Modeste

XLDnaute Barbatruc
Re : Insertion ligne par macro

Re,

Sur mon fivhier, le code macro ne fonctionne pas
"Caisse à dires" (comme disait mon oncle, chauffeur de taxi)
Entendons-nous: ce n'est pas le fivhier que j'interroge, mais à quel fichier fais-tu référence? Celui que tu avais déposé ici?? Ou ton fichier réel!?
... Car dans le fichier de ton message #1, j'avais testé (et ai re-testé encore!?)

Et la formule proposée par JCGL, tu l'as essayée?
 

Staple1600

XLDnaute Barbatruc
Re : Insertion ligne par macro

Bonsoir à tous

Modeste
Un petit bout de Dim, ca ne mange de pas de biscottes
Sub recopie()
Dim lig As Long
lig = 4
For r = 4 To [B50000].End(xlUp).Row
Cells(lig, 7).Resize(Cells(r, 4).Value, 2).Value = Cells(r, 2).Resize(1, 2).Value
lig = lig + Cells(r, 4).Value
Next r
End Sub
 

Modeste

XLDnaute Barbatruc
Re : Insertion ligne par macro

Re²
Un petit bout de Dim, ca ne mange de pas de biscottes
Mais ... ça frise l'obsession, cette histoire de panties!


gourdin à dit:
Y'a pas d'raison, mon bon Monsieur! (mais expliquer où le bas (pour faire plaisir à Staple1600!) blessait aurait peut-être été utile à ceux qui passeront par ici, plus tard ... s'il te reste 2 minutes)

Note aux générations futures: n'allez pas dire à vos prof que c'est de cette manière qu'on écrit bât, dans l'expression ci-dessus, sous prétexte que vous l'avez vu sur internet!
 

job75

XLDnaute Barbatruc
Re : Insertion ligne par macro

Bonjour à tous,

S'il y a un grand nombre de lignes, c'est beaucoup plus rapide avec un tableau VBA :

Code:
Sub Recap()
Dim t, n&, rest(), j&, i&, x, y
t = Range("B4:D" & Range("B" & Rows.Count).End(xlUp).Row + 3)
n = Application.Sum(Application.Index(t, , 3))
ReDim rest(1 To IIf(n, n, 1), 1 To 2)
j = 1
For i = 1 To UBound(t)
  x = t(i, 1): y = t(i, 2)
  For j = j To j + Val(t(i, 3)) - 1
    rest(j, 1) = x: rest(j, 2) = y
  Next
Next
If n Then [G4].Resize(n, 2) = rest
Range("G" & n + 4 & ":H" & Rows.Count).Delete xlUp
End Sub
Nota : pas de problème ici avec le texte explicatif...

A+
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…