Bonjour à tous,
Je suis toujours dans mon projet d'automatisation de planning de tournoi sportif (voir ici), et je bloque sur une ligne depuis ce matin...
Voilà le contexte : je crée un dictionnaire de données associant une lettre (correspondant à un groupe) à l'adresse d'une cellule. Illustrons avec un exemple : le groupe A se trouve dans la feuille "wJA", à la cellule "D11". L'adresse est alors : wJAD11. Voilà le code me permettant de remplir mon dico :
Convert est une fonction perso prenant en argument un entier et renvoyant la lettre (string) dont la place dans l'alphabet est l'entier en question.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim i As Byte Dim k As Byte Dim Count As Byte Count = 1 For i = 4 To 14 'sheets Sheets(i).Activate k = 0 Do Until Cells(4, 4 + 6 * k).Value = "" 'groupes DicoAdresse.Add Convert(Count), ActiveSheet.Name! & Split(Cells(11, 4 + 6 * k).Address(), "$")(1) & Split(Cells(11, 4 + 6 * k).Address(), "$")(2) Count = Count + 1 k = k + 1 Loop Next
Jusqu'ici tout va bien, j'ai affiché les keys/items dans un Tableau et j'ai bien ce que je veux.
Je veux ensuite me servir de cette adresse, et c'est là que ca coince.
Voilà comment je procède :
C'est cette dernière ligne qui bloque ; le code de la boucle For continue derrière mais je ne l'ai pas copié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dim inc As Byte 'incrément de la boucle sur les Staffel Dim spiel As Integer Dim rng As Range For inc = 1 To DicoTaille.Count 'NB: DicoTaille défini plus haut, le problème n'est pas là Dim X As String X = Convert(inc) 'On jumpe à l'adresse du staffel rng = Sheets(Left(DicoAdresse.Item(X), 3)).Range(Chr(34) & Right(DicoAdresse.Item(X), 3) & Chr(34))
En gros j'utilise Left et Right pour séparer l'adresse et utiliser une moitié pour activer la feuille que je veux, et l'autre pour la cellule dans cette feuille.
J'utilise Chr(34) pour rajouter des guillemets, et j'obtiens une erreur 1004 (la méthode Range a échoué).
Si j'enlève ces guillemets, j'ai une erreur 91 (variable objet non définie).
Quelqu'un voit le problème ? Pas moi
Merci d'avance pour votre aide.
MJ
Partager