Problème avec un objet Range
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 :
Code:
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 |
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.
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 :
Code:
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)) |
C'est cette dernière ligne qui bloque ; le code de la boucle For continue derrière mais je ne l'ai pas copié.
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