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

Dupliquer ligne avec condition

cheikh

XLDnaute Nouveau
Bonjour,
Je veux adapter une macro qui doit me permettre de dupliquer une ligne entière si le dernier champs de la ligne est renseigné (voire exemple dans Feuil2).
Dans la Feuil1 il existe déjà une macro qui permet de faire un duplication de ligne en plusieurs en se basant sur les ";".
Les deux problématiques sont assez semblables mais je n'arrive pas à l'adapter pour mon cas.
J'ai mis les deux exemples en pj.
Merci d'avance.
 

Pièces jointes

  • Dupliquer V1.xlsm
    21.3 KB · Affichages: 67

Dranreb

XLDnaute Barbatruc
Re : Dupliquer ligne avec condition

LE& est équivalent à LE As Long

Alors, c'est vrai je trouve aussi plus lisible :
VB:
Dim TE(), LE As Long, TS(), LS As Long, C As Long
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Dupliquer ligne avec condition

Je vous l'ai dit: ne produisez Now que pour les lignes dupliquées. Pour les autres reconduisez les heures qui avaient été mises à leurs propres créations. Vous pouvez naturellement mettre une colonne supplémentaire si vous voulez, que vous ne renseignez que pour les lignes créées.

Ça devrait donner ça :
VB:
Sub Duplique()
Dim TE(), LE&, TS(), LS&, C&
TE = ActiveSheet.[A1].CurrentRegion.Value
ReDim TS(1 To 5000, 1 To 9)
For LE = 2 To UBound(TE, 1)
   LS = LS + 1
   For C = 1 To 6: TS(LS, C) = TE(LE, C): Next C
   TS(LS, 8) = TE(LE, 8)
   If Not IsEmpty(TE(LE, 7)) Then
      LS = LS + 1
      For C = 1 To 5: TS(LS, C) = TE(LE, C): Next C
      TS(LS, 6) = TE(LE, 7): TS(LS, 8) = Now
      TS(LS, 9) = "Nouveau": End If: Next LE
ActiveSheet.[A14].Resize(LS, 6).Value = TS
End Sub
Vérifiez si les dates/heures sont correctes. Si ce n'est pas le cas (et que Microsoft persiste à se foutre de la gueule du monde) mettez Value2 au lieu de Value
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…