Insérer une ligne juste en dessous d'une autre

Bon je vais essayer de mieux expliquer mon problème : en fait j'ai un formulaire sur un userform de saisie d'informations qui doivent s'insérer dans une feuille excel. J'aimerais que si userform.textbox1.value est déjà dans le première colonne de la feuil, alors on insere une ligne juste en dessous de la ligne contenant la cellule qui contient userform.textbox1.value et ensuite on insère les données du formulaire dans cette ligne. Voici mon code en dessous. Merci d'avance !

Private Sub CommandButton1_Ajouter_Click()

Dim i As Integer, numlign As Integer

numlign = Sheets("Liste").Range("A65536").End(xlUp).Row

With Sheets("Liste")

For i = 7 To numlign

If .Cells(i, 1).Value = UserForm2.TextBox1 Then

.Cells(i, 1).Insert Shift:=xlDown

Range("A" & i).Value = UCase(TextBox1.Value)

Range("B" & i).Value = UCase(TextBox2.Value)

Range("C" & i).Value = UCase(TextBox3.Value)

Range("D" & i).Value = UCase(TextBox4.Value)

Range("E" & i).Value = UCase(TextBox5.Value)

Range("F" & i).Value = UCase(TextBox6.Value)

Range("H" & i).Value = UCase(TextBox7.Value)

MsgBox "Données bien enregistrées !"

Exit For

End If

Next

UserForm2.Hide

' num = Sheets("Liste").Range("TextBox1.Value").Insert Shift:=xlDown

'num = a.Insert

End With

End Sub

Bonjour,

Merci de mettre le fichier en ligne, cela permet de ne pas tout refaire pour donner la solution.

Amicalement

Voici en pièce jointe mon fichier. Merci

34chargement.zip (41.36 Ko)

Re,

En fait ce n'est pas une bonne idée de faire cela car en cas de traitement de données éventuelles ou de filtre, il ne sera pas possible de récupérer les infos associées au transporteur.

Je ferais plutot ceci :

  • Compléter la colonne A du nom du transporteur et ce sur chaque nouvelle ligne
  • mettre les données l'une en dessous de l'autre tel qu'écrite dans l'USF
  • Mettre un filtre Automatique sur la ligne 6, afin de permettre de retrouver par filtrage les infos liées au transporteur

Ton avis ou questions sur cette proposition ?

Bonjour anouchka25

Peut-être comme ceci....

Private Sub CommandButton1_Click()

Sheets("LISTE").Activate

L = Sheets("LISTE").Range("a65536").End(xlUp).Row + 1

Range("A" & L).Value = TextBox1

Range("B" & L).Value = TextBox2

Range("C" & L).Value = TextBox3

Range("D" & L).Value = TextBox4

Range("E" & L).Value = TextBox5

Range("F" & L).Value = TextBox6

Range("H" & L).Value = TextBox7

MsgBox "Données bien enregistrées !"

End Sub

Et1000lio

@+

38chargement.zip (24.14 Ko)

Re,

Oui c'est mieux

Le code adapté toutefois

Private Sub CommandButton1_Click()
Dim L As Integer
With Sheets("LISTE")
    L = .Range("a65536").End(xlUp).Row + 1
    .Range("A" & L).Value = TextBox1
    .Range("B" & L).Value = TextBox2
    .Range("C" & L).Value = TextBox3
    .Range("D" & L).Value = TextBox4
    .Range("E" & L).Value = TextBox5
    .Range("F" & L).Value = TextBox6
    .Range("H" & L).Value = TextBox7

MsgBox "Données bien enregistrées !"
End With
End Sub

Si ok, merci de ne pas omettre de cloturer le fil en cliquant sur le V vert à coté du bouton EDITER

Amicalementy

Rechercher des sujets similaires à "inserer ligne juste dessous"