MsBox Dynamique

Bonjour la communauté : je suis un peu bloqué

Je voudrais optimiser un peu mon fichier Excel mais j'arrive pas a ce que je veux :

j'ai un tableau pour lequel j'ajoute a chaque fois des lignes en dessous, pour l'ajout de ligne de le gère a travers un petit code VBA qui me renvoi une messagerie Box qui me demande le nombre de ligne à ajouter (j'ai réussi à faire ça).

Sauf que moi je veux que lorsque je clique sur le bouton ADD pour ajouter une seule ligne en dessous je veux que une boite de dialogue et me demande de rentrer : Doc_ID , Title, Ref, Ref. Version. (je veux que tout ce la sera sous forme d'une saisie au niveau de ma MsgBox et quand je fait OK a la fin je veux retrouver les infos que j'ai saisie sur ma MsgBox dans ma ligne que j'ai rajouté.

Voici mon fichier en PJ

8test-copie.xlsm (20.53 Ko)

Bonjour,

Une Msgbox ne permet aucune saisie, elle affiche simplement un message à l'utilisateur.

Pour permettre la saisie, il faut soit utiliser une InputBox, soit pour un outil plus complet, un UserForm contenant par exemple des TextBox.

Une suggestion pour la deuxième macro :

Sub DemandeNbreLigne()

    Dim nb As Integer, i As Integer, Lig As Long

    nb = Application.InputBox("Combien de ligne voulez vous ? ", Type:=1)
    For i = 1 To nb
        Inser
    Next i
    If nb = 1 Then
        Lig = Selection.Row + 1
        Range("A" & Lig) = Application.InputBox("Identifiant du document", "Doc_ID", Type:=2)
        Range("B" & Lig) = Application.InputBox("Titre du document", "Title / Contents", Type:=2)
        Range("C" & Lig) = Application.InputBox("Référence", "Ref", Type:=2)
        Range("D" & Lig) = Application.InputBox("Version du document", "Ref. Version", Type:=2)
    End If

End Sub

L'argument Type de l'InputBox sert à restreindre le type de donnée acceptée à la saisie (1 pour une valeur numérique par exemple). Ce qui évite une gestion des erreurs comme vous l'aviez imaginé.

Bonjour,

Une Msgbox ne permet aucune saisie, elle affiche simplement un message à l'utilisateur.

Pour permettre la saisie, il faut soit utiliser une InputBox, soit pour un outil plus complet, un UserForm contenant par exemple des TextBox.

Bonjour

je te remercie pour ta réponse, j'ai trouvé une autre solution plus simple avec moins de ligne de code :

Sub Inser()

Selection.EntireRow.Copy

Selection.Insert Shift:=xlDown

Selection.EntireRow.Offset(1, 0).ClearContents

Dim resultat As String

resultat = InputBox("Rentrer l'ID ?")

If resultat <> "" Then

Range("A23") = resultat

End If

End Sub

ce code me permet de rajouter une ligne en dessous et il me demande de saisir l'identifiant et le ranger dans une cellule de la ligne ajouté que je lui demande (A23 exemple), mais moi je veux que ça sera en automatique sans lui dire ou ranger les information que je rentre via ma messagerie.

A-tu une idée stp ?

voici le nouveau fichier avec le nouveau petit code

14test-copie.xlsm (19.40 Ko)

Je t'invite à jeter un œil au code proposé plus haut...

Salut, ça marche très bien ton code, c'est très gentil, mais est ce que tu penses que je peux rentrer toutes ces information via une seule fenêtre (MsgBox ou un UserForm) car c'est l'objectif de mon exercice pour que je puisse simplifier la tache aux utilisateurs ?

Comme indiqué précédemment, une MsgBox ne permet pas de saisie. Si tu veux une unique interface de saisie, c'est donc un formulaire (UserForm). Je t'invite à consulter les sections de cours du site :

Cours VBA

Cours VBA avancé

Ou encore :

Créer un formulaire sans UserForm

Super je te remercie, je vais essayer de voir cela.

merci

Rechercher des sujets similaires à "msbox dynamique"