VBA remplir la ligne d'un tableau sans faire de doublon entre 2 colonne
Bonjour,
J'ai vraiment cherché de PARTOUT et je n'ai pas trouvé de réponses ou, du moins, je ne les ai pas comprise.
Je cherche à avoir un tableau que je peux remplir avec le code d'un client et le code d'un voyage sans que ce code et ce client ne se retrouve en doublon ensemble (eux spécifiquement mais qu'on puisse quand même retrouver ce code client et ce code voyage associé aux autres) c'est un peu le problème classique du nom et prénom et j'ai vu que des solutions avec la validation des données étaient proposées mais je cherche à le faire en code VBA (de plus, je n'y arrive pas avec la validation des données pour une raison inconnue).
J'ai donc réalisé un code mais il ne fait rien, je ne vois pas l'erreur et je ne m'en sors pas même en multipliant les tentatives.
Je mets ci-joint le fichier, en réalité c'est juste un devoir de classe et cette problématique des doublons n'est pas posé et avec le confinement la professeure ne répond plus trop à nos questions (surtout si elle n'a rien à voir avec le devoir comme celle là).
Le bouton inscription client est dans la feuille inscription client, elle prend les valeurs du tableau Client (dans la feuille client) et dans la table Voyage (feuille Voyages) et renvoie ces valeurs dans la feuille Inscriptions.
Mes 2 valeurs à ajouter dans les colonnes sont des ComboBox
Private Sub AddIncription_Click()
Sheets("Inscriptions").Activate
ActiveSheet.Range("A1").Select
Do
ActiveCell.Offset(1, 0).Select
If ActiveCell = Me.CodeVoyage.Value Then
ActiveCell.Offset(0, 1).Select
If ActiveCell = Me.CodeClientInscript.Value Then
MsgBox "Ce client est déjà inscrit à ce voyage", vbInformation + vbOKOnly, "Ceci est un message informatif"
Me.CodeClientInscript.Value = ""
Me.CodeVoyage.Value = ""
End If
End If
Loop While ActiveCell <> ""
If Me.CodeVoyage.Value = "" Then
Else
Sheets("Inscriptions").Activate
ActiveSheet.Range("A1").Select 'Sélection de la première cellule du tableau
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
ActiveCell = CodeVoyage.Value
Selection.Offset(0, 1).Select
ActiveCell = CodeClientInscript.Value
Unload Me
End If
End Sub
Ceci est mon premier devoir en VBA je suis encore une grande débutante (mes excuses si les codes sont assez incertains).
Merci d'avance !!!
Bonjour,
J'ai résolu mon problème !
Le résultat est là par contre mon message d'erreur s'affiche 2 fois pour une raison inconnue (mais c'est un détail qui me dérange pas étant donné que le code marche !).
Je le met en réponse au cas où cela pourrait servir quelqu'un d'autre.
Bonne soirée.
Private Sub AddIncription_Click()
If CodeVoyage.Value = "" Then
MsgBox "Il manque le Code Voyage", vbInformation + vbOKOnly, "Ceci est un message informatif"
Else
If CodeClientInscript.Value = "" Then
MsgBox "Il manque le Code Client", vbInformation + vbOKOnly, "Ceci est un message informatif"
Else
Sheets("Inscriptions").Activate
ActiveSheet.Range("A1").Select
Do
ActiveCell.Offset(1, 0).Select
If ActiveCell = UCase(Me.CodeVoyage.Value) Then
ActiveCell.Offset(0, 1).Select
If UCase(ActiveCell) = UCase(Me.CodeClientInscript.Value) Then
MsgBox "Ce client est déjà inscrit à ce voyage", vbInformation + vbOKOnly, "Ceci est un message informatif"
Me.CodeClientInscript.Value = ""
Me.CodeVoyage.Value = ""
Else
ActiveCell.Offset(0, -1).Select
End If
End If
Loop Until ActiveCell = ""
If Me.CodeVoyage.Value = "" Then
Else
Sheets("Inscriptions").Activate
ActiveSheet.Range("A1").Select 'Sélection de la première cellule du tableau
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
ActiveCell = CodeVoyage.Value
Selection.Offset(0, 1).Select
ActiveCell = CodeClientInscript.Value
Unload Me
End If
End If
End If
End Sub