Erreur 13 : Incomptabilité

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

Bonjour

Remplace cette instruction :

O.Range("A1").Cells.Clear 'efface toutes les cellules

par celle-ci :

O.Cells.Clear

Peut-être que cela marchera mieux ….

Sinon, joins ton fichier.

Bye !

bonjour

salut gmb

ya combien d'onglets tous pareils ? mon conseil : les supprimer et tout mettre sur le même

tu vas ainsi simplifier tous les traitements macro et formules

la création de multiples onglets identiques date du temps du papier (ce machin mince, léger, et qui a des dimensions ridiculement petites par rapport à une feuille Excel)

un ongelt Excel est capable de gérer des dizaines de ramettes ! écrites en tout petit petit

Voici mon fichier

12medailles.xlsm (147.19 Ko)

Mets un titre dans la colonne B de la feuille "10 ans"

OK ?

Bye !

bonjour

salut Damsa, gmb au passage

le ficheir montre une méconnaissance d'Excel

  • il faut TOUT mettre dans une unique feuille et non des feuilles par année et "mettre sous forme de Tableau" qui évite de semer des formules dans des zones vides !
  • ensuite un simple TCD

aucun VBA, aucune formule

13classeur2.xlsx (32.81 Ko)
Rechercher des sujets similaires à "erreur incomptabilite"