Formulaire pour insérer des lignes selon le numéro rentré

flodino a écrit :

Merci beaucoup !

Du coup avec un champ je choisis le numéro de compte, je remplis les autres champs et ils remplissent la ligne insérée ?

Je vais essayer de comprendre et d'analyser le code, si j'ai des questions je peux vous envoyer un message privé ?

posez les ici comme ça les questions/réponses serviront à d'autres utilisateurs également

Encore merci beaucoup ça m'est vraiment utile.

Je me suis penché sur le code, et une première question apparait directement,

With Feuil1

Pourquoi travailler sur la Feuille 1 ?

Vu que le formulaire rentre des données dans les autres feuilles ?

Le formulaire travaille avec les données de la feuille "Présentation test bx" est en langage vba pour y faire référence il y a plusieurs possibilité :

scheets("Présentation test bx")

sheets(1) (si la feuille Présentation test bx est en première position dans le classeur ou sheets(2) si elle est en deuxième)

ou alors par le code name "Feuil1" voir la photo pour mieux comprendre.

l'utilisation de with permet de ne pas répeter à chaque fois "l'objet" car en vba il faut un objet une méthode et une propriété(facultative).

L'objet c'est l'équivalent de la feuille...Et quand on code, parfois c'est rébarbatif de repréciser feuille("machin") a chaque ligne donc pour éviter de réecrire 50 mille fois la même chose on raccourci les phrases en écrivant

with feuil1

.range(machin chose)

.truc

.bidule

end with

Est ce que tu peux valider ma compréhension de cette partie du code :

Private Sub UserForm_initialize()

Dim dl&, i%

( déclaration des variables )

dl = Feuil1.Range("a" & Rows.Count).End(xlUp).Row

( dl représente l'ensemble de la colonne a )

For i = 8 To dl

With Feuil1

If .Range("b" & i) <> "" Then ComboBox1.AddItem .Range("b" & i)

( Si L'ensemble de la colonne b se modifie

Alors la combobox reprend la valeur de la colonne b )

End With

Next

End Sub

Merci d'avance !

Salutation !

Private Sub UserForm_initialize()

Dim dl&, i%

( déclaration des variables ) Déclaration de variable

dl = Feuil1.Range("a" & Rows.Count).End(xlUp).Row

( dl représente l'ensemble de la colonne a )

(dl c'est une variable qui va contenir le numéro de ligne de la dernière cellule non vide

Rows.count trouve la dernière cellule de la feuille ou de la colonne

Rows.count).end(xlup) trouve la dernière cellule non vide en partant du bas de la feuille vers le haut

Rows.count).end(xlup).row ne retient que le numéro de la ligne de la derniere cellule non vide (fais abastraction de la colonne

For i = 8 To dl

Commencement d'une boucle allant du chiffre 8 à la dernière ligne non vide et qui ne s'arretera que quand la valeur de I sera = à la valeur de dl. Tant que ce n'est pas le cas, j'applique ce qu'il y a en dessous de for jusqu'à "next"

With Feuil1

If .Range("b" & i) <> "" Then ComboBox1.AddItem .Range("b" & i)

( Si L'ensemble de la colonne b se modifie Alors la combobox reprend la valeur de la colonne b )

Si la cellule b8 (i= 8 lors de la première itération de la boucle) est différent de rien alors j'ajoute à mon combobox la cellule b8

End With

Next Next signifie le prochain i. Next incrémente de 1 la valeur de i. Au début de la boucle, on donne 8 comme valeur à I. Vu qu'avec next on augmente i de 1, désormais i = 9 et la macro se replace juste en dessous " For i =..." puis elle recommence sont traitement "si la cellule b & i donc (B9 car i = 9) est different de rien alors je l'ajoute à mon combobox sinon si c'est égale à rien je ne fais rien...

End Sub

En espérant avoir pu éclaircir vos interrogations

Rechercher des sujets similaires à "formulaire inserer lignes numero rentre"