Bonjour à tous,
J'ai un bout de procédure dans mon fichier d'adhérents à un skiclub, qui bug et je ne sais pas pourquoi:
En deux mots j'ai une boite de dialogue dans laquelle j'ai des listbox. La listbox1 me permet de choisir des adhérents parmi la liste des adhérents dont le nom (variable par "décaller...") est défini par [NPAdhérents].
A l'intérieur d'un With...End with, une boucle prend chaque Nom sélectionné et le rentre dans une feuille "Liste".
Ensuite, en utilisant ce Nom, je recherche à l'intérieur d'un second With ...End With dans la feuille "Adhérents" (et donc à l'intérieur de mon with précédent et dans une autre feuille que "Liste") et avec la méthode Find, le Nom de mon adhérent afin de copier le contenu de la cellule qui donne son age.... Et c'est là que ça bug...
J'ai tout essayé pour arriver à sélectionner cette fameuse cellule de la feuille "Adhérents", j'obtiens toujours une erreur, jamais la même suivant la formulation employée...
Je vous mets mon code ci-après. Quelqu'un peut-il me dire ce qui pose pb ?
--------------
'entre les renseignements
With Sheets("Liste")
' pour chaque choix dans listbox1
For j1 = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(j1) = True Then
Nom = ListBox1.List(j1)
' copie les données de l'adhérent sélectionné
'cherche et fixe le numéro de la dernière Ligne2 remplie
Ligne2 = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Ligne2) = Nom
'cherche la cell correspondant au nom dans la feuille adhérents
With Worksheets("Adhérents").[NPAdhérents]
Set c = .Find(What:=Nom, LookAt:=xlWhole, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "données non trouvées"
Exit Sub
Else
'MsgBox c.Address(rowabsolute:=False, columnabsolute:=False)
LaCell = c.Address(rowabsolute:=False, columnabsolute:=False)
'ci-dessous il m'affiche bien l'adresse de la cellule recherchée dans la boite de dialogue :
MsgBox LaCell
'mais là il refuse de sélectionner cette cellule
et c'est là que ça bug !!!
.range(Lacell).Select
'copie l 'age
.ActiveCell.Offset(0, 2).Copy
End If
End With
......./...... Le code continue alors avec le premier With...
Si quelqu'un peut m'aider... merci !
A++
J'ai un bout de procédure dans mon fichier d'adhérents à un skiclub, qui bug et je ne sais pas pourquoi:
En deux mots j'ai une boite de dialogue dans laquelle j'ai des listbox. La listbox1 me permet de choisir des adhérents parmi la liste des adhérents dont le nom (variable par "décaller...") est défini par [NPAdhérents].
A l'intérieur d'un With...End with, une boucle prend chaque Nom sélectionné et le rentre dans une feuille "Liste".
Ensuite, en utilisant ce Nom, je recherche à l'intérieur d'un second With ...End With dans la feuille "Adhérents" (et donc à l'intérieur de mon with précédent et dans une autre feuille que "Liste") et avec la méthode Find, le Nom de mon adhérent afin de copier le contenu de la cellule qui donne son age.... Et c'est là que ça bug...
J'ai tout essayé pour arriver à sélectionner cette fameuse cellule de la feuille "Adhérents", j'obtiens toujours une erreur, jamais la même suivant la formulation employée...
Je vous mets mon code ci-après. Quelqu'un peut-il me dire ce qui pose pb ?
--------------
'entre les renseignements
With Sheets("Liste")
' pour chaque choix dans listbox1
For j1 = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(j1) = True Then
Nom = ListBox1.List(j1)
' copie les données de l'adhérent sélectionné
'cherche et fixe le numéro de la dernière Ligne2 remplie
Ligne2 = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Ligne2) = Nom
'cherche la cell correspondant au nom dans la feuille adhérents
With Worksheets("Adhérents").[NPAdhérents]
Set c = .Find(What:=Nom, LookAt:=xlWhole, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "données non trouvées"
Exit Sub
Else
'MsgBox c.Address(rowabsolute:=False, columnabsolute:=False)
LaCell = c.Address(rowabsolute:=False, columnabsolute:=False)
'ci-dessous il m'affiche bien l'adresse de la cellule recherchée dans la boite de dialogue :
MsgBox LaCell
'mais là il refuse de sélectionner cette cellule
.range(Lacell).Select
'copie l 'age
.ActiveCell.Offset(0, 2).Copy
End If
End With
......./...... Le code continue alors avec le premier With...
Si quelqu'un peut m'aider... merci !
A++