Bonjour a tous,
J'ai un classeur qui fonctionnait très bien et ce matin en l'ouvrant, la macro ne se lance plus et j'ai un message d'erreur.
Je ne sais pas de quoi ça vient.
Si quelqu'un peut m'aider ce la serait très sympa.
J'ai mis une flache sur la ligne qui pose problème apparemment.
Voici le code
Private Sub Workbook_Open() 'a l'ouverture du classeur
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim i As Long 'déclare la variable I (Incrément)
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For Each O In Sheets 'boucle sur tous les onglets O du classeur
Select Case O.Name 'agit en fonction du nom de l'onglet
Case "Participations" 'cas "Participations"
O.Range("A1").Cells.Clear 'efface toutes les cellules
Case Else 'tous les autres cas
If O.Range("A1").Value = "" Then 'condition : si A1 est vide
GoTo suite 'va à l'étiquette "suite"
Else 'sinon
TV = O.Range("A1").CurrentRegion 'definit le tableau des valeurs TV
--> For i = 2 To UBound(TV, 1) 'boucles sur toutes les ligne I du tableau des valeurs TV (en partant de la seconde)
If TV(i, 1) <> "" Then D(TV(i, 1)) = "" 'alimente le dictionnaire D avec les données en colonne 1 de TV
Next i 'prochaine ligne de la boucle
End If 'fin de la condition
End Select 'fin de l'action en fonction du nom de l'onglet
suite: 'étiquette
Next O 'prochain onglet de la boucle
With Sheets("Participations") 'prend en compte l'onglet "Participations"
.Activate 'acticve l'onglet
.Range("A1").Value = "Nom & Prénom" 'écrit "Nom & Prénom" en A1
'renvoie en A2 redimensionnée, transposée, la liste des éléments du dictionnaire D sans doublon
.Range("A2").Resize(D.Count, 1) = Application.Transpose(D.keys)
End With 'fin de la prise en compte de l'onglet "Participations"
End Sub
Merci