insertion de nouvelles lignes avec les numéros manquants

  • Initiateur de la discussion Initiateur de la discussion david et lili
  • 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 !

D

david et lili

Guest
bonjour à vous tous,

nous avons besoin d'aide pour compléter un tableau. En A B C D, nous avons un code et en E nous avons un numéro qui est rattaché à ce code. Nous avons ainsi peut être à peu près 300 Lignes.
Tous les chiffres en E sont compris entre 1 et 5OO, mais vu que nous avons que environ 300 codes, tous les chiffres ne sont donc pas rerésentés.
Ce que nous aimerions, c'est pouvoir compléter notre tableau avec les numéros qui manquent dans la colonne E de façon à avoir tous les nombres de 1 à 500, triés par ordre croissant

Il faut donc déjà pouvoir reconnaître les chiffres qui manquent et ensuite pouvoir les insérer.

Possible ?

merci d'avance à ceux qui se pencheront sur ce problème.
 
Bonjour,
Voilà une petite macro très simple qui fera ce travail, A CONDITION QUE
la colonne E soit triée dans l'ordre croissant, et ne comporte pas d'entête...

Sub Test()
iR = [E1000].End(xlUp).Row
While Cells(iR, 5).Value <> iR
Rows(iR).Copy Cells(iR, 1)
iR = iR - 1
Wend
End Sub

A+
 
La même en couleur avec quelques lignes inutiles
(remplacer XXX par le nombre de ligne d'entête)

Sub Test()
inutile = XXX
iR = [E1000].End(xlUp).Row
While Cells(iR, 5).Value <> iR + inutile
Rows(iR).Copy Cells(iR + inutile, 1)
iR = iR - 1
Wend
End Sub

A+
 
Bonjour David et Lili

Bonjour Galopin01

Commencez ap nommez votre colonne E "ref" puis coller le code suivant sur un bouton

Private Sub CommandButton1_Click()
lig = 1
For i = 1 To 500
flag = Application.WorksheetFunction.Lookup(i, Range("ref"))
If flag = i Then
' la valeur existe
Else
Message = "Référence " & i & " inéxistante"
reponse = MsgBox(Message)
Range("A" & 300 + lig) = InputBox("Entrez le paramètre 1")
if Range("A" & 140 + lig) = 501 then exit sub
Range("B" & 300 + lig) = InputBox("Entrez le paramètre 2")
Range("C" & 300 + lig) = InputBox("Entrez le paramètre 3")
Range("D" & 300 + lig) = InputBox("Entrez le paramètre 4")
Range("E" & 300 + lig) = i
lig = lig + 1
End If
Next i
End Sub

il ne reste plus alors qu'a trier le tableau (saisir 501 en parametre 1 pour sortir de la boucle)

A+
 
re +

Vous pouvez simplifier le code ainsi pour ne remplir que la colonne E

Private Sub CommandButton1_Click()
lig = 1
For i = 1 To 500
flag = Application.WorksheetFunction.Lookup(i, Range("ref"))
If flag = i Then
' la valeur existe
Else
Range("E" & 300 + lig) = i
lig = lig + 1
End If
Next i
End Sub


A++
 
Effectuer d'abord un tri basé sur la colonne E
Ensuite executer successivement les 2 macros ci-dessous
Attention ceci est basé sur le fait qu'il n'y a pas d'en-tete sur les colonnes
S'il y en a corriger au niveau de "c.value=c.Row" en mettant par exemple "c.value=c.row-1" s'il y a une ligne d'en-tete "c.value=c.row-2" s'il y a 2 lignes etc...
La 1ere macro detecte la non succession des chiffres en E et insere une ligne
la 2eme remplit la cellule E qui est evidemment à 0

Sub Macro1()
For Each c In Range("E1", "E500")
If Not (c.Value = c.Row) Then
c.Select
Selection.Insert Shift:=xlDown
End If
If c.Value = 0 Then Exit For
Next
End Sub

Sub Macro2()
For Each c In Range("E1", "E500")
If c.Value = 0 Then c.Value = c.Row
Next
End Sub
 
Bonjour à tous les intervenants sur ce fil, bonjour le forum,

Hou la la !! je vois que ce post en a passioné plus d'un. Comme ça fait un moment que je galère dessus je me permets d'envoyer ma proposition en pièce jointe malgré tout ce qui a été dit.

À plus,

Robert
 

Pièces jointes

Merci à vous tous de nous avoir accorder votre temps et vos connaissances !
Avec toutes ces réponses concernant notre problème nous devrions trouver largement notre bonheur... et nous lancer dans notre première macro, ce qui n'est pas une mince affaire !!!

A bientôt et bon dimanche !
 
- 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.

Discussions similaires

Retour