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

Bonjour, je dispose d'une base de donnée qui classe différents comptes comptables

60601...

60602...

et je souhaite réaliser un formulaire qui permettra à l'utilisateur d'insérer de nouvelles lignes avec des informations rentrés dans les champs ( jusque là j'ai déjà fait )

Mais je souhaite en fonction d'un champ, qui ne sera pas mis dans la ligne insérée, qu'elle place la ligne à l'endroit indiqué par ce champ.

En joint, le fichier excel pour illustrer mon problème.

Conformément à l'exemple, dans un champ l'on donnerait le compte 604800 et ainsi place la ligne deux lignes en bas du numéro de compte donné ( car il y a l'écriture en bleu )

Est ce possible de réaliser cela ?

Merci d'avance !

24demande10.xlsx (9.10 Ko)

Parfait merci !

Mais j'ai un peu de mal à imbriquer la boucle avec la recherche d'informations Méthode Range.Find

Dans le formulaire, j'aimerais qu'avec la TextoBox1

L'on rentre le nom du compte, qui va donc nous placer deux lignes en bas du compte donné.

Donc il faut que je place dans CommandButton1_Click() selon le cours,

Private Sub CommandButton1_Click()

Sub boucle_while()

Dim numero As Integer

numero = 1

While numero <= 500

Cells(numero, 1) = numero

numero = numero + 1

Wend

Unload Me

End Sub

Mais comment faire pour que la numérotation soit toujours dans la colonne B ?

Et Comment faire pour que la boucle ne soit pas manuelle mais trouve la ligne qui est vide après l'emplacement qu'on lui a indiqué ?

Après avoir plus travaillé les cours sur les différents sites,

j'ai de nouvelles questions pour comprendre,

Par exemple par rapport au nouveau fichier excel simplifié en joint dans ce message,

pour donc créer un formulaire qui contient :

Une zone de texte qui indique la place où vont être les informations entrées par l'utilisateur.

Et trois autres zones de textes, qui vont être les informations qui vont être rentrées.

Il va donc falloir,

Initier la place des lignes où l'on veut qu'ils les rentrent

Donc ( par rapport au fichier excel )

Sub boucle_while()

Cells(5, 1) = 1

Cells(9, 1) = 2

Cells(13, 1) = 3

End Sub

Puis il va falloir déclarer des Case Is non ?

Si l'information rentrée par l'utilisateur est 1 alors les informations vont être rentrée dans la constante 1 ( par rapport au boucle while )

Comment créer cela ?

Salut flodino...Montre nous le classeur original avec le résultat attendu afin que l'on gagne tous du temps

Tout d'abord merci beaucoup !

C'est pour un stage et j'aimerais bien parler du VBA, alors j'ai besoin d'apprendre.

Du coup j'ai mis le fichier final où j'aimerais bien faire ça en joint.

Dans celui là du coup j'aimerais faire un formulaire où il y a un champ qui indique là où les informations rentrées dans le formulaire vont être rentrées, et faudrait à chaque fois qu'il rentre une ligne à cette position donc que les prochaines informations insérent une nouvelle ligne

Le champ qui indique la position ça serait donc en fonction des numéros de compte ( 606... )

Et après je mettrais 4 champs en plus pour rentrer le nom du fournisseur, l'établissement, un libellé...

La présentation de l'onglet test bx en mode tabulaire comme dans les TCD c'est voulu ? Comment une personne qui veux consulter une information su tel ou tel compte fait pour le repérer aisément ? Avant de parler de vba pour inserer des lignes (qui n'est pas des plus difficile à faire) je pense qu'il faut revoir certaines choses...

En fait les pages test vont être imprimées, cependant je souheterais laisser un outil qui va permettre a ceux qui auront le document de le modifier rapidement et facilement, en rajoutant une ligne avec les informations a travers un questionnaire

impression avec la colonne B réduite ou visible ?

Dans un soucis de présentation, pour que le classeur soit le plus compact possible, elle est liée a la cellule c et j'ai réduit au plus la colonne c sans la supprimer cet il y a des informations

ca m'arrange qu'elle reste (même masquée) car on peut s'en servir pour alimenter un combobox , exemple en image

Magnifique, merci, je pensais a avoir a indiquer les lignes a chaque fois du coup

Mais du coup comment indiquer de prendre la ligne vide après les écriture en bas des comptes ?

Et après faut que je comprenne comment lier les différentes lignes vides a un champ pour que si on rentre dans ce dernier 606350 les prochaines informations aille dans la ligne correspondante

Voici ce que j'ai pu faire mais n'ayant pas assez d'information sur le reste de ce que vous voulez faire je ne peux qu'en rester là.

Vous ouvrez l'userfom et vous choisissez le compte, vous cliquez sur ok et cela insert une ligne vide en dessous de la dernière ligne non vide.

Pour le bon fonctionnement laisser toujours une ligne vide entre chaque compte

Merci beaucoup !

En fait, ça serait un formulaire qui, dans la ligne qui est créé, l'on remplisse sur le modèles des lignes précédentes donc par exemple sur les page test bordeaux, avoir un champ établissement, un numéro et un libellé ( relié a une écriture comptable )

Mais vous m'avez déjà beaucoup aidé sur ce que je savais pas faire, si vous avez me temps, si vous pouvez me montrer juste un exemple d'un champ qui se remplit a la première colonne de la ligne créé ?

J'suis pas sur d'avoir bien compris ce que vous voulez savoir.. "d'un champ qui se remplit a la première colonne de la ligne créé ?"

Cependant je devine un peu ce que vous voulez faire (dans l'espoir que je ne me soit pas trompé) donc j'ai fait ceci

la première ligne du compte s'affiche dans les textes box puis quand vous cliquez sur "valider" vous inserer la ligne en dernière position du compte...

Ah c'est presque ça, déjà je comprends mieux donc merci beaucoup

En fait, au lieu de voir la dernière ligne, ça serait de laisser a l'utilisateur, quand il a choisi le compte, pouvoir remplir une ligne insérée avec les informations qu'il rempli dans les champs ( l'établissement BX ) le nom du fournisseur, le numéro de l'uo le nom de l'uo... Par exemple un champ où il rentre bx un autre avenia un autre un numéro 100500...

Donc en soit la même chose qu'ici mais sans les informations pré-remplies ?

Et sinon, que veut dire : "d'un champ qui se remplit a la première colonne de la ligne créé ?"

edit : quoi qu'il en soit si vous ne voulez pas les lignes pré-remplies il faut supprimer dans le code :

Private Sub ComboBox1_Change()
    Dim quoi As Variant, trouve As Range
    quoi = ComboBox1
    With Feuil1
        Set trouve = .[b:b].Find(quoi, lookat:=xlWhole)
        If Not trouve Is Nothing Then
            TextBox1 = trouve(3, 2)
            TextBox2 = trouve(3, 3)
            TextBox3 = trouve(3, 4)
            TextBox4 = trouve(3, 5)
            TextBox5 = trouve(3, 0)
        End If
    End With
End Sub

Effectivement j'ai du mal a m'exprimer

En fait je veux juste dire que c'est pour rajouter de nouvelleslignes avec les informations remplies dans les champs, tout en gardant la base de données existantes

Ok, je vous laisse le soin de modifier l'userform pour rajouter les noms des textbox car je ne les connais pas.

Si le sujet est résolu n'oubliez pas de la signaler

sinon laissez le fil ouvert pour reposer d'autres question

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é ?

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