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 !!!

8vba-projet.xlsm (63.56 Ko)

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

Rechercher des sujets similaires à "vba remplir ligne tableau doublon entre colonne"