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

inserer nbr ligne excel egale nbr de ligne au dessus

  • Initiateur de la discussion Initiateur de la discussion KATI180
  • 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 !

K

KATI180

Guest
bonsoir,

j'aurai besoin de votre aide.
pr les besoins du boulot je traite des fichiers de 10000 lignes; et il faudra q'à chaque changement de date il y'a des lignes qui s'insere selon le nbr de lignes rempli audessus.(juste les lignes entre les 2 lgnes vides).
vous me ferez economiser des heures de boulot.merci pour votre aide
ex :

K4356 04/2005
J8765 04/2005 la il faudera inserer 2 ligne
L9876 01/2006 la il faudera inserer 1 ligne
K4986 04/2007
J8786 04/2007
L9436 01/2007 la il faudera inserer 3 ligne
............
 
Re : inserer nbr ligne excel egale nbr de ligne au dessus

Bonsoir,

Quelque chose dans ce goût là?

Désolé, je suis fatigué. A mon avis il y a moyen de faire plus simple...

Code:
Sub insert_row()
Dim i, j, k As Integer
i = 1
k = 0
While Sheets(1).Cells(i, 1) <> ""
    k = k + 1
    If Sheets(1).Cells(i, 2) <> Sheets(1).Cells(i + 1, 2) Then
        If (k > 1) And (i > 2) Then k = k + 1
        j = 0
        While j < k
          Sheets(1).Cells(i + 1, 2).EntireRow.Insert Shift:=xlDown
          j = j + 1
          i = i + 1
        Wend
        k = 0
    End If
    i = i + 1
Wend
End Sub
 
Re : inserer nbr ligne excel egale nbr de ligne au dessus

Bonjour KATI180, bonjour mememe,

Une autre proposition du même tonneau....
Tu ne semblais ne tenir compte que de l'année, c'est ce que j'ai fait.
VB:
  Option Explicit
Sub AnyMoreBlankLines()
Dim cel As Range, blanc%, aOld%, aNew%, i&, NbLigne%
Dim F2 As Worksheet

Application.ScreenUpdating = False
Set F2 = Sheets(2)
blanc = Year(0)

With F2   ' La colonne "DATE" commence ligne 1
  aOld = Year(.Range("B1"))
  For Each cel In .Range("B2:" & .Range("B65000").End(xlUp).Address)
    aNew = Year(cel)    ' le décalage ne jouera que sur l'année
    Select Case aNew
      Case blanc    ' cellule vide
    
      Case aOld
        NbLigne = NbLigne + 1
      
      Case Else       ' insérer "NbLigne" lignes et au moins 1 ligne
        If NbLigne = 0 Then NbLigne = 1
        For i = 1 To NbLigne: cel.EntireRow.Insert Shift:=xlDown: Next i    '
        aOld = aNew
        NbLigne = 0
    End Select
  Next cel
End With
Application.ScreenUpdating = True

End Sub
Cordialement
 

Pièces jointes

Re : inserer nbr ligne excel egale nbr de ligne au dessus

bonsoir,

merci mememe le code fonctionne comme je souhaitai,t'es un genie.
merci à toi aussi julberto sauf que je dois prendre en compte et le mois et l'annee mais sinon c nikel(je pourrai tjr ajouter le mois tu va me dire).
je veux pas abuser mais est ce qu'il y'aurai moyen mnt de copier ;les lignes audessus dans les lignes inseré vide.
je vous explique ,mon fichier c pr de la compta.donc a chaque ligne d'ecriture il y'a une autre ligne qui reprend les meme info sauf les comptes qui change et le sens debit ou credit.
j'espere que vous voyez un peu de quoi je parle.
re merciiiiiiiii
 
Re : inserer nbr ligne excel egale nbr de ligne au dessus

Bonjour KATI, le fil,

je dois prendre en compte et le mois et l'annee
Voir le fichier joint à toutes fins utiles.
est ce qu'il y'aurai moyen mnt de copier ;les lignes audessus dans les lignes inseré vide.
Ceci peut être fait manuellement très vite et sans souci.
Il te suffit de copier/coller toute ta feuille au bas des données actuelles puis de les trier sur la colonne date par exemple. Tu te retrouveras ainsi dans les conditions que tu souhaites.

Je pars en vacances très bientôt.
cordialement
 

Pièces jointes

Re : inserer nbr ligne excel egale nbr de ligne au dessus

bonsoir julberto ,
merci pour le code il marche nickel.
mais si j'avais demandé à copier les lignes c'est qu'il faudra pour chaque ligne avoir sa contrepartie avec les meme infos apart le sens (debit ou credit) avec le numero de compte.j'ai essayeé en fesant une formule mais le probleme je en sais pas comment faire pour que le systeme reconait la deuxieme ligne pour remettre la contre partie.j'ai joint un fichier pour que vous puissiez voir de ce que je parle.
merci infiniment.
 

Pièces jointes

Dernière modification par un modérateur:
Re : inserer nbr ligne excel egale nbr de ligne au dessus

Bonjour KATI, bonjour à tous,

Je me suis borné à rendre automatique ma suggestion de ce matin.
VB:
Option Explicit

Sub Pre_Processing()
Dim tbl, nbCol&, nbLig&, F3 As Worksheet

Application.ScreenUpdating = False
Set F3 = Worksheets("Feuil3")
With F3

   ' sélection de la zone renseignée
  Set tbl = .Range("A1").CurrentRegion
  
   ' ajout d'une colonne de "1" caractérisant les données originales
  tbl.Offset(1, tbl.Columns.Count).Resize(tbl.Rows.Count - 1, 1) = 1
  
   'reproduit ce même tableau à la suite des données originales
  tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Copy _
                Destination:=.Range("A1").End(xlDown).Offset(1, 0)
                
   'réordonne les données originales et dupliquées
   '   l'absence ou la présence du "1" en dernière colonne distingue
   '           de façon permanente les données originales de leur copie
  Set tbl = .Range("A1").CurrentRegion
  nbCol = tbl.Columns.Count
  nbLig = tbl.Rows.Count
   ' tri selon la date puis selon
  tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1).Sort key1:=.Range("E2:E" & nbLig), order1:=xlAscending, _
              key2:=.Range(Cells(2, nbCol), Cells(nbLig, nbCol)), order2:=xlDescending, Header:=xlNo

End With
Application.ScreenUpdating = True

End Sub
Les vacances c'est pour demain !
Cordialement
 

Pièces jointes

Re : inserer nbr ligne excel egale nbr de ligne au dessus

bonjour julberto,
le code comme d'hab marche à merveille je suis super contente.tu ne peux pas savoir comment cava me faire avancer dans le boulot chaque jour.
il reste juste 1 ou 2 truc de plus et le fichier sera fini.la je je te laisse profiter de tes vacances trankilou.(alors que d'autres passeront des exam,lol)
j'attendrai ton retour.
remerci et bonne vacancesssssssssss
ciao
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…