Fonction Array - erreur 1004
Résolu/Fermé5 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
28 oct. 2015 à 11:30
28 oct. 2015 à 11:30
Bonjour,
quand vous avez l'erreur, clic sur debugage et passez le curseur souris sur la variable ip pour voir sa valeur
quand vous avez l'erreur, clic sur debugage et passez le curseur souris sur la variable ip pour voir sa valeur
Merci d'avoir regardé mon problème. J'aurais déjà appris quelque chose : je ne connaissais pas cette manipulation avec le curseur !
J'ai refait un test. ip affiche la valeur 79, ce qui est une option valide. (ip est défini en public as byte).
J'en ai profité pour vérifier les variables du tableaux et elles sont aussi valides.
Une autre idée ?
J'ai refait un test. ip affiche la valeur 79, ce qui est une option valide. (ip est défini en public as byte).
J'en ai profité pour vérifier les variables du tableaux et elles sont aussi valides.
Une autre idée ?
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
28 oct. 2015 à 11:56
28 oct. 2015 à 11:56
Re,
J'ai teste votre code et il n'y a pas d'erreur !!!!!
Faudrait avoir votre fichier .....
J'ai teste votre code et il n'y a pas d'erreur !!!!!
Faudrait avoir votre fichier .....
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 28/10/2015 à 12:16
Modifié par pijaku le 28/10/2015 à 12:16
Bonjour,
Salut f894009,
Essayez ceci :
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
Salut f894009,
Essayez ceci :
Private Sub BtnFond_Click() Select Case Profil Case "Administrateur": ip = 77 Case "Editeur": ip = 78 Case "Utilisateur": ip = 76 Case "Visiteur": ip = 79 End Select CoulRVB = BtnFond.BackColor With Sheets("Masque") If FdEcran = False Then Fd_R = Int(CoulRVB Mod 256) Fd_G = Int((CoulRVB Mod 65536) / 256) Fd_B = Int(CoulRVB / 65536) .Range(Cells(ip, 5), Cells(ip, 7)).Value = Array(Fd_R, Fd_G, Fd_B) Else 'If FdEcran = True Then Txt_R = Int(CoulRVB Mod 256) Txt_G = Int((CoulRVB Mod 65536) / 256) Txt_B = Int(CoulRVB / 65536) .Range(Cells(ip, 8), Cells(ip, 10)).Value = Array(Txt_R, Txt_G, Txt_B) End If End With End Sub
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
J'ai testé l'idée de pijaku, mais sans succès (dommage !).
J'ai crée un fichier test :
http://www.cjoint.com/c/EJClsShTZNJ
(désolé, je ne sais pas créer le lien internet direct)
J'ai crée un fichier test :
http://www.cjoint.com/c/EJClsShTZNJ
(désolé, je ne sais pas créer le lien internet direct)
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 oct. 2015 à 12:30
28 oct. 2015 à 12:30
Excuse moi, erreur d'inattention...
Il manquait les points devant les Cells...
Il manquait les points devant les Cells...
Private Sub BtnFond_Click() Select Case Profil Case "Administrateur": ip = 77 Case "Editeur": ip = 78 Case "Utilisateur": ip = 76 Case "Visiteur": ip = 79 End Select CoulRVB = BtnFond.BackColor With Sheets("Masque") If FdEcran = False Then Fd_R = Int(CoulRVB Mod 256) Fd_G = Int((CoulRVB Mod 65536) / 256) Fd_B = Int(CoulRVB / 65536) .Range(.Cells(ip, 5), .Cells(ip, 7)).Value = Array(Fd_R, Fd_G, Fd_B) Else 'If FdEcran = True Then Txt_R = Int(CoulRVB Mod 256) Txt_G = Int((CoulRVB Mod 65536) / 256) Txt_B = Int(CoulRVB / 65536) .Range(.Cells(ip, 8), .Cells(ip, 10)).Value = Array(Txt_R, Txt_G, Txt_B) End If End With End Sub
TonyLucky
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
28 oct. 2015 à 12:41
28 oct. 2015 à 12:41
Bonne remarque. J'y avais pensé aussi car cela me semblait logique. Mais avec les points, j'ai une erreur de compilation (référence incorrecte ou non qualifiée), du coup, je les ai supprimés. Quand même curieux que la macro fonctionne quand je suis sur la feuille "masque" et pas ailleurs. J'ai déjà utilisé des arrays, mais jamais je n'ai eu ce problème.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
>
TonyLucky
28 oct. 2015 à 12:50
28 oct. 2015 à 12:50
J'ai retenté sur ton fichier, ça fonctionne clairement sans problème...
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
28 oct. 2015 à 13:30
28 oct. 2015 à 13:30
Re,
Bonjour pijaku, ca flotte ??
Ta modif marche tres bien et pour completer,
Bonjour pijaku, ca flotte ??
Ta modif marche tres bien et pour completer,
'Sheets("Masque").Range(Cells(ip, 5), Cells(ip, 7)).Value = Array(Fd_R, Fd_G, Fd_B) Sheets("Masque").Range("E" & ip & ":G" & ip).Value = Array(Fd_R, Fd_G, Fd_B)ca marche aussi, mais le With/End With est plus "classe"
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
>
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
28 oct. 2015 à 13:34
28 oct. 2015 à 13:34
ça flotte merci.
Et toi?
J'aime bien, lors de l'utilisation d'un Userform, référencer mes feuilles avec With.
Au moins, tu peux en faire ce que tu veux...
Bonne fin de journée
Et toi?
J'aime bien, lors de l'utilisation d'un Userform, référencer mes feuilles avec With.
Au moins, tu peux en faire ce que tu veux...
Bonne fin de journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci à tous les deux pour votre aide et surtout pour la solution.
J'utilise aussi with en règle générale. J'avais d'ailleurs commencé comme cela. Mais cela ne fonctionnait pas, alors, j'ai cherché autre chose.
J'avoue que je n'aurai pas pensé à modifier la plage comme vous me l'avez proposé.
Encore merci, et bonne fin de journée.
J'utilise aussi with en règle générale. J'avais d'ailleurs commencé comme cela. Mais cela ne fonctionnait pas, alors, j'ai cherché autre chose.
J'avoue que je n'aurai pas pensé à modifier la plage comme vous me l'avez proposé.
Encore merci, et bonne fin de journée.