Changer de ligne à chaque utilisation de la macro qui utilise des InputBox

akitsuna

XLDnaute Nouveau
Bonjour à tous,

Je me trouve dans une impasse même après épuration des sujets de ce forum.

J'explique mon souci.

Je désirerai remplir un tableau de 5 colonnes et un nombre non défini de ligne à l'aide d'un bouton auquel est affecté une macro.
Cette macro quant à elle est composée de 5 input box par ligne qui définissent les valeurs de A3, B3, C3, D3 et enfin E3.

Ce qui me pose problème, c'est que lorsque ma ligne 3 est remplie, je souhaiterai qu'en cliquant sur mon bouton, la même macro remplisse la ligne 4 et ainsi de suite et non pas qu'elle efface et inscrive par dessus, les données de la ligne 3.

Pour le moment je n'ai réussi qu'a mettre en place un système de conditions or ceci est plutot fastidueux à mettre en place.

Auriez-vous une solution s'il vous plaît.

Voici mon code :

Sub Enrgmt()
Dim Date_Enr
Date_Enr = Application.InputBox(Prompt:="Quelle est la date du signalement?", Title:="Vigilance", Default:=Date, Type:=1)
If Range("A3").Value = False Then
Range("A3").Value = Date_Enr
Else
Range("A4").Value = Date_Enr

If Range("A4").Value = False Then
Range("A4").Value = Date_Enr
Else
Range("A5").Value = Date_Enr
End If

Dim Num_Cient
Num_Client = Application.InputBox(Prompt:="Quel est le numéro de Sécurité Sociale / FINESS / SIRET ?", Title:="Vigilance", Type:=1)
If Range("B3").Value = False Then
Range("B3").Value = Num_Client
Else
Range("B4").Value = Num_Client
End If

Dim Nom_Client
Nom_Client = Application.InputBox(Prompt:="Quel est l'identité du client concerné?", Title:="Vigilance", Type:=2)
If Range("C3").Value = False Then
Range("C3").Value = Nom_Client
Else
Range("C4").Value = Nom_Client
End If

Dim Interlocuteur
Interlocuteur = Application.InputBox(Prompt:="Quel est l'interlocuteur?", Title:="Vigilance", Type:=2)
If Range("D3").Value = False Then
Range("D3").Value = Interlocuteur
Else
Range("D4").Value = Interlocuteur
End If

Dim Message_Transmis
Message_Transmis = Application.InputBox(Prompt:="Quel est le message tranmis?", Title:="Vigilance", Type:=2)
If Range("E3").Value = False Then
Range("E3").Value = Message_Transmis
Else
Range("E4").Value = Message_Transmis
End If
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Changer de ligne à chaque utilisation de la macro qui utilise des InputBox

Bonjour Akitsuna et bienvenu, bonjour le forum,

Je me demande si une UserForm n'aurait pas été plus simple dans ton cas... Ton code modifié :
Code:
Sub Enrgmt()
Dim dest As Range
Dim Date_Enr
Dim Num_Cient
Dim Nom_Client
Dim Interlocuteur
Dim Message_Transmis

Date_Enr = Application.InputBox(Prompt:="Quelle est la date du signalement?", Title:="Vigilance", Default:=Date, Type:=1)
Set dest = IIf(Range("A3").Value = "", Range("A3"), Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
dest.Value = Date_Enr
Num_Client = Application.InputBox(Prompt:="Quel est le numéro de Sécurité Sociale / FINESS / SIRET ?", Title:="Vigilance", Type:=1)
Set dest = IIf(Range("B3").Value = "", Range("B3"), Cells(Application.Rows.Count, 2).End(xlUp).Offset(1, 0))
dest.Value = Num_Client
Nom_Client = Application.InputBox(Prompt:="Quel est l'identité du client concerné?", Title:="Vigilance", Type:=2)
Set dest = IIf(Range("C3").Value = "", Range("C3"), Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0))
If Range("C3").Value = False Then
dest.Value = Nom_Client
Interlocuteur = Application.InputBox(Prompt:="Quel est l'interlocuteur?", Title:="Vigilance", Type:=2)
Set dest = IIf(Range("D3").Value = "", Range("D3"), Cells(Application.Rows.Count, 4).End(xlUp).Offset(1, 0))
dest.Value = Interlocuteur
Message_Transmis = Application.InputBox(Prompt:="Quel est le message tranmis?", Title:="Vigilance", Type:=2)
Set dest = IIf(Range("E3").Value = "", Range("E3"), Cells(Application.Rows.Count, 5).End(xlUp).Offset(1, 0))
dest.Value = Message_Transmis
End Sub
 

akitsuna

XLDnaute Nouveau
Re : Changer de ligne à chaque utilisation de la macro qui utilise des InputBox

Bonsoir Robert,

Merci de ton aide. Cela me permet effectivement de fonctionner comme je le souhaite.
Je ne comprends cependant pas trop comment arriver à ce code en userform. Peux tu expliquer un peu stp.
Dans ton élan, pourrais-tu me dire comment je peux adapter dans la 1ere input box, le format de la date qui apparaît dans Default:=Date car elle apparait en mm/dd/yyyy et je souhaiterai quelque chose de plus conventionnel en dd/mm/yyyy.

Comment m'y prendre?
 

Discussions similaires

Statistiques des forums

Discussions
314 654
Messages
2 111 598
Membres
111 215
dernier inscrit
fateh