Bonjour
Je suis nouveau dans le domaine du VBA et alors que je codais une macro simple l'erreur 1004 (la méthode range de l'objet Global a échoué) est apparue. J'ai fait pas mal de recherches sur cette erreur mais il semble qu'il s'agisse d'un problème différent pour chaque cas et je n'ai pas trouvé comment résoudre le mien.
La macro est sensée tirer une valeur aléatoire dans la colonne A, et n'est pas achevée, mais sera sensée le faire aussi dans B C D E F. Ce qui compte c'est l'erreur que j'ai surligné, et que je n'arrive pas à comprendre.
Voilà le code :
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Sub Tirage_aleatoire() ' ' Tirage_aleatoire Macro ' Macro enregistrée le 05/12/2015 par Asimonu ' Sheets("Feuil1").Select Dim ligne As Long Dim nbobjets As Long Dim cellule As String Dim colone As String colone = "H" 'exemple ligne = 2 'Après le nom de la ville Dim ligneobjets As Long 'Ligne d'affichage de l'objet dans la liste tirée ligneobjets = 8 'après le nom de la ville et les nb d'objets Dim coloneobjets As String Dim objetchoisi As String While ligne <= 7 cellule = "H" + Trim(Str(ligne)) 'quantité d'un objet nbobjets = Range(cellule).Value coloneobjets = "A" While nbobjets <> 0 cellule = coloneobjets + Trim(Str((Range(coloneobjets + "1").Value) * Rnd() + 2)) 'objet choisi objetchoisi = cellule '------------------------------------------------------------------------------------------------------------------------------- Range(colone + Str(ligneobjets)) = objetchoisi 'dans la cellule de l'obj en H on met ce dernier '------------------------------------------------------------------------------------------------------------------------------- ligneobjets = ligneobjets + 1 nbobjets = nbobjets - 1 Wend ligne = ligne + 1 ligne = ligne + 1 Wend End Sub
Partager