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

rajouter des lignes en fonction d'une variable

ekylybryum

XLDnaute Nouveau
bonjour tous le monde, étant nouveau sur ce forum , et donc comme tout les nouveaux, je viens en quête d'une aide qui me serais précieuse sur comment ajouter une ou des lignes supplémentaires en fonction d'un chiffre variable;
c.a.d. : j'ai une série de chiffre dans ma colonne A (pouvant aller de 0 a l'infini) lorsque ce chiffre est différent de zéro, comment faire pour ajouter un nombre de lignes en dessous de ce chiffre équivalant a ce chiffre?
exemple de série de la colonne: 1;7;0;0;0;0;0;1;0;0;0;3;0;0;1;0;1
donc dans cet exemple
rajouter 1 ligne en dessous de la valeur 1
rajouter 7 lignes en dessous de la valeur 7
rajouter 0 ligne en dessous de la valeur 0
etc......
je remercie d'avance ceux qui porterons attention a mon problème, merci beaucoups
 

DoubleZero

XLDnaute Barbatruc
Re : rajouter des lignes en fonction d'une variable

Bonjour à toutes et à tous,

Bienvenue sur XLD, ekylybryum !

Un essai en pièce jointe.

A bientôt
 

Pièces jointes

  • 00 - ekylybryum - Lignes insérer.xlsm
    17.5 KB · Affichages: 61
  • 00 - ekylybryum - Lignes insérer.xls
    36 KB · Affichages: 41
Dernière édition:

ekylybryum

XLDnaute Nouveau
Re : rajouter des lignes en fonction d'une variable

Bonjour à toutes et à tous,

Bienvenue sur XLD, ekylybryum !

Un essai en pièce jointe.

A bientôt

coucou, merci pour ta réponse, cela fonctionne
mais ça fais deux heures que j'essaie avec un ami, de le faire fonctionner sur ma série de données(qui est longue + 300000 lignes :!) avec aucun succès
on arrive a le faire fonctionner sur ton fichier avec quelques lignes mais des qu'on met du volume sa bug
ci joint mon fichier pour voir si tu pourrais tester cela toi meme et merci encore pour ton altruisme

oups 300000 c un peu gros je t'envoie ce que je peux merci
 

Pièces jointes

  • historique excel .xlsx
    264.7 KB · Affichages: 47

DoubleZero

XLDnaute Barbatruc
Re : rajouter des lignes en fonction d'une variable

Bonjour, ekylybryum, le Forum,

...on arrive a le faire fonctionner sur ton fichier avec quelques lignes mais des qu'on met du volume sa bug...

D'où la nécessité de joindre un fichier exemple lorsqu'une question est posée !

Voici la macro adaptée, cette fois, au fichier de travail.

Bon courage et à bientôt
 

Pièces jointes

  • 00 - ekylybryum - Lignes insérer V2.zip
    253.2 KB · Affichages: 35

job75

XLDnaute Barbatruc
Re : rajouter des lignes en fonction d'une variable

Bonjour ekylybryum, bonjour chère ânesse

Voici une solution qui utilise des tableaux VBA :

Code:
Sub Insertion()
Dim t, lig&, restit(), n&, col As Byte
t = Range("A1:G" & [A65000].End(xlUp).Row)
lig = Application.SumIf([A:A], ">0", [A:A]) 'nb lignes à insérer
ReDim restit(1 To UBound(t) + lig, 1 To 7)
For lig = 1 To UBound(t)
  n = n + 1
  For col = 1 To 7
    restit(n, col) = t(lig, col)
  Next
  If Val(t(lig, 1)) > 0 Then n = n + Int(Val(t(lig, 1)))
Next
[A1:G1].Resize(UBound(restit)) = restit
End Sub
Elle fonctionne même s'il y a du texte ou des valeurs négatives en colonne A.

L'exécution est rapide car aucune ligne n'est en fait insérée.

Fichier joint où j'utilise la petite souris de 00 qui me plaît beaucoup

A+
 

Pièces jointes

  • Insertion(1).zip
    249 KB · Affichages: 31

ekylybryum

XLDnaute Nouveau
Re : rajouter des lignes en fonction d'une variable

merci job75 , cool je vais voir cela
pour dire a double zéro merci beaucoup cela marche nickel merci et surement a plus car j'aurais certainement besoin de refaire appel a vous....si c pas abusé arigatou na
 

job75

XLDnaute Barbatruc
Re : rajouter des lignes en fonction d'une variable

Bonjour ekylybryum, DoubleZero, le forum,

Petit détail, avec 300000 lignes on est sur Excel 2007 ou 2010 donc utiliser :

Code:
t = Range("A1:G" & Cells(Rows.Count, 1).End(xlUp).Row)
Fichier (2).

A+
 

Pièces jointes

  • Insertion(2).zip
    249.7 KB · Affichages: 34

Discussions similaires

Réponses
7
Affichages
404
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…