Insertion ligne par macro

  • Initiateur de la discussion Initiateur de la discussion gourdin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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?
 
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
 
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!
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
351
Réponses
7
Affichages
472
Réponses
3
Affichages
272
Retour