Rechercher un nom et effectuer deux actions différentes en fonction du résultat
cs_miniboo
Messages postés14Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention10 août 2010
-
27 janv. 2010 à 18:37
cs_miniboo
Messages postés14Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention10 août 2010
-
28 janv. 2010 à 11:53
Bonsoir à tous,
Je butte completement sur une macro (pour moi assez compliquée) et je ne trouve pas la solution.
Je cherche à enregistrer la participation de plusieurs personnes (mes contacts) à une serie d'évènements.
Pour cela, j'ai un UserForm qui reprend (dans des labels et des textboxs) les informations basiques de ma personne. Ensuite j'ai une combobox avec la liste de mes évènements, avec une case à cocher pour valider la présence de la personne.
Les informations rentrées dans le UserForm vont s'implanter dans un onglet, dans une colonne différente selon le nom de l'évènement sélectionné. Jusqu'ici tout va bien, la macro marche bien, se décale selon le choix de l'évènement et écrit yes si la case est cochée.
Ce que je voudrais arriver à faire, c'est qu'avant de reporter les infos du Userform dans l'onglet (il se met sur la dernière ligne vide normalement), c'est qu'il teste la colonne du Nom de la personne, vérifie si cette personne existe déja dans la colonne, et si c'est pas le cas, alors sélectionner la dernière ligne, mais si le nom de la personne existe déja, alors sélectionner son nom et implémenter les nouvelles infos sur la même ligne!
ma macro est la suivante:
rivate Sub CommandButton1_Click()
Sheets("XX").Select
Dim Nom As Integer
Dim target As Range, cell As Range
Do
Set Nom = UserForm6.Label21.Caption
Set target = Columns(5).Find(nom, xlWhole)
If target Is Nothing Then
Dim line As Integer
line = Range("a65530").End(xlUp).Row + 1
Range("a" & line).Select
Selection.Value = UserForm2.TextBox1.Value
Selection.Offset(0, 1).Select
ActiveCell.Value = UserForm2.ComboBox1.Value
Selection.Offset(0, 1).Select
ActiveCell.Value = UserForm2.TextBox2.Value
Selection.Offset(0, 1).Select
ActiveCell.Value = UserForm4.ComboBox1.Value
Selection.Offset(0, 1).Select
ActiveCell.Value = UserForm4.TextBox2.Value
Selection.Offset(0, 1).Select
If UserForm6.ComboBox1.Value = Sheets("XX").Range("F1").Text Then ActiveCell.Select
If UserForm6.ComboBox1.Value = Sheets("XX").Range("I1").Text Then Selection.Offset(0, 3).Select
If UserForm6.ComboBox1.Value = Sheets("XX").Range("L1").Text Then Selection.Offset(0, 6).Select
' a dit qu'il viendrait?
If UserForm6.CheckBox1.Value True Then ActiveCell.Value "yes"
Selection.Offset(0, 1).Select
'est venu?
If UserForm6.CheckBox2.Value True Then ActiveCell.Value "yes"
Selection.Offset(0, 1).Select
'Commentaires
ActiveCell.Value = UserForm6.TextBox1
Else
cell.Select
If UserForm6.ComboBox1.Value = Sheets("PRESENCE").Range("F1").Value Then Selection.Offset(0, 1).Select
If UserForm6.ComboBox1.Value = Sheets("PRESENCE").Range("I1").Value Then Selection.Offset(0, 4).Select
If UserForm6.ComboBox1.Value = Sheets("PRESENCE").Range("L1").Value Then Selection.Offset(0, 7).Select
If UserForm6.CheckBox1.Value True Then ActiveCell.Value "yes"
Selection.Offset(0, 1).Select
If UserForm6.CheckBox2.Value True Then ActiveCell.Value "yes"
Selection.Offset(0, 1).Select
ActiveCell.Value = UserForm6.TextBox1
Unload UserForm6
End If
Loop
End Sub
Si quelqu'un repère le morceau qui n'est pas correct,...Merci beaucoup d'avance pour votre aide!
Miniboo
A voir également:
Rechercher un nom et effectuer deux actions différentes en fonction du résultat
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 27 janv. 2010 à 18:57
Bonjour,
1) que sont tous ces vilains Select ? Apprends à t'en débarrasser (en te référant directement à la cellule à modifier). Cette manière (à la hussarde) de travailler est lourde, lente et gourmande
2) ouvre ton aide en ligne sutr la méthode Find et applique-là (-pour ce qui est de l'aspect recherche).
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Quant à ton erreur sur la variable nom, elle montre là encore la nécessité de combler de sérieuses lacunes de base :
regarde ce que tu as écrit :
Set Nom = UserForm6.Label21.Caption
Or UserForm6.Label21.Caption (un string) ne saurait être un objet (ce que définit un set) !
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est