Ci-joint le code d'une macro d=E9clar=E9e dans un module, j'ai une erreur
1004 syst=E9matiquement =E0 la ligne ou l'on affecte une valeur =E0 "cible"
J'ai essay=E9 de d=E9clarer cette variable ou non, j'ai essay=E9 de mettre
ou non le nom de la sheet devant les ranges,... sans succ=E8s =3D> si qqun
a une id=E9e,
Merci,
FreD.
Sheets("diff=E9rences donn=E9es").Activate
For k =3D 10 To line_planning
If Sheets("diff=E9rences donn=E9es").Range(Cells(k, 9), Cells(k,
9)).Value =3D "NOK" Then
cible =3D Sheets("planning").Range(Cells(k, 6))
colorie cible
End If
Next
With Sheets("planning") cible = .Range(.Cells(k, 6)) End if
"fuzzy" a écrit dans le message de news:
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur 1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre ou non le nom de la sheet devant les ranges,... sans succès => si qqun a une idée,
Merci, FreD.
Sheets("différences données").Activate For k = 10 To line_planning If Sheets("différences données").Range(Cells(k, 9), Cells(k, 9)).Value = "NOK" Then cible = Sheets("planning").Range(Cells(k, 6)) colorie cible End If Next
With Sheets("planning")
cible = .Range(.Cells(k, 6))
End if
"fuzzy" <roadbuster@free.fr> a écrit dans le message de news:
1185799063.430462.279750@l70g2000hse.googlegroups.com...
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur
1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre
ou non le nom de la sheet devant les ranges,... sans succès => si qqun
a une idée,
Merci,
FreD.
Sheets("différences données").Activate
For k = 10 To line_planning
If Sheets("différences données").Range(Cells(k, 9), Cells(k,
9)).Value = "NOK" Then
cible = Sheets("planning").Range(Cells(k, 6))
colorie cible
End If
Next
With Sheets("planning") cible = .Range(.Cells(k, 6)) End if
"fuzzy" a écrit dans le message de news:
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur 1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre ou non le nom de la sheet devant les ranges,... sans succès => si qqun a une idée,
Merci, FreD.
Sheets("différences données").Activate For k = 10 To line_planning If Sheets("différences données").Range(Cells(k, 9), Cells(k, 9)).Value = "NOK" Then cible = Sheets("planning").Range(Cells(k, 6)) colorie cible End If Next
fuzzy
..même punition au même endroit avec les 2 solutions.. une autre idée ? (c'est vraiment une galère cette erreur...)
Bonsour® fuzzy avec ferveur ;o))) vous nous disiez :
..même punition au même endroit avec les 2 solutions.. une autre idée ? (c'est vraiment une galère cette erreur...)
pourquoi pas simplement : cible = Sheets("planning").Cells(k, 6)
@+ ;o)))
fuzzy
Par acquis de conscience j'ai voulu voir si c'était l'affectation qui posait pb mais non c'est tout bêtement la sélection de la cellule..
donc un simple : Sheets("planning").Range(Cells(k, 6)).Select ou Sheets("planning").Range(Cells(k, 6);Cells(k, 6)).Select ou Sheets("planning").Range(sheets("planning").Cells(k, 6)).Select ....
ne fonctionne pas.. (ARGHHHHHHHHHH)
Par acquis de conscience j'ai voulu voir si c'était l'affectation qui
posait pb mais non c'est tout bêtement la sélection de la cellule..
donc un simple :
Sheets("planning").Range(Cells(k, 6)).Select
ou
Sheets("planning").Range(Cells(k, 6);Cells(k, 6)).Select ou
Sheets("planning").Range(sheets("planning").Cells(k, 6)).Select ....
Par acquis de conscience j'ai voulu voir si c'était l'affectation qui posait pb mais non c'est tout bêtement la sélection de la cellule..
donc un simple : Sheets("planning").Range(Cells(k, 6)).Select ou Sheets("planning").Range(Cells(k, 6);Cells(k, 6)).Select ou Sheets("planning").Range(sheets("planning").Cells(k, 6)).Select ....
ne fonctionne pas.. (ARGHHHHHHHHHH)
News CI
Bonjour Fred,
Essaye d'activer la feulle planning avant ton affectation par : Sheets("planning").Activate
Si cible va contenir un objet Range, il faut mettre Set avant. L'affectation va devenir (en simplifiant aussi) : set cible = Sheets("planning").Cells(k, 6)
Salutations,
François,
"fuzzy" a écrit dans le message de news:
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur 1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre ou non le nom de la sheet devant les ranges,... sans succès => si qqun a une idée,
Merci, FreD.
Sheets("différences données").Activate For k = 10 To line_planning If Sheets("différences données").Range(Cells(k, 9), Cells(k, 9)).Value = "NOK" Then cible = Sheets("planning").Range(Cells(k, 6)) colorie cible End If Next
Bonjour Fred,
Essaye d'activer la feulle planning avant ton affectation par :
Sheets("planning").Activate
Si cible va contenir un objet Range, il faut mettre Set avant.
L'affectation va devenir (en simplifiant aussi) :
set cible = Sheets("planning").Cells(k, 6)
Salutations,
François,
"fuzzy" <roadbuster@free.fr> a écrit dans le message de news:
1185799063.430462.279750@l70g2000hse.googlegroups.com...
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur
1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre
ou non le nom de la sheet devant les ranges,... sans succès => si qqun
a une idée,
Merci,
FreD.
Sheets("différences données").Activate
For k = 10 To line_planning
If Sheets("différences données").Range(Cells(k, 9), Cells(k,
9)).Value = "NOK" Then
cible = Sheets("planning").Range(Cells(k, 6))
colorie cible
End If
Next
Essaye d'activer la feulle planning avant ton affectation par : Sheets("planning").Activate
Si cible va contenir un objet Range, il faut mettre Set avant. L'affectation va devenir (en simplifiant aussi) : set cible = Sheets("planning").Cells(k, 6)
Salutations,
François,
"fuzzy" a écrit dans le message de news:
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur 1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre ou non le nom de la sheet devant les ranges,... sans succès => si qqun a une idée,
Merci, FreD.
Sheets("différences données").Activate For k = 10 To line_planning If Sheets("différences données").Range(Cells(k, 9), Cells(k, 9)).Value = "NOK" Then cible = Sheets("planning").Range(Cells(k, 6)) colorie cible End If Next
fuzzy
En effet avec cette solution je n'ai plus l'erreur 1004 mais la 91 : "variable objet ou variable de bloc non définie"
Du coup j'ai fait un set de ma variable juste après la déclaration : Set cible = Range("A1")
et cela fonctionne !! (enfin ça fait un peu bidouille..)
En tout cas merci pour vos idées !
On 30 juil, 15:33, "Modeste" wrote:
Bonsour® fuzzy avec ferveur ;o))) vous nous disiez :
..même punition au même endroit avec les 2 solutions.. une autre idée ? (c'est vraiment une galère cette erreur...)
pourquoi pas simplement : cible = Sheets("planning").Cells(k, 6)
@+ ;o)))
En effet avec cette solution je n'ai plus l'erreur 1004 mais la 91 :
"variable objet ou variable de bloc non définie"
Du coup j'ai fait un set de ma variable juste après la déclaration :
Set cible = Range("A1")
et cela fonctionne !! (enfin ça fait un peu bidouille..)
En tout cas merci pour vos idées !
On 30 juil, 15:33, "Modeste" <nom...@nomail.net> wrote:
Bonsour® fuzzy avec ferveur ;o))) vous nous disiez :
..même punition au même endroit avec les 2 solutions.. une autre
idée ?
(c'est vraiment une galère cette erreur...)
pourquoi pas simplement :
cible = Sheets("planning").Cells(k, 6)
Explication : L'objet Range demande une adresse pour retourner la valeur d'une cellule et non la valeur d'une cellule. J'avais omis de spécifier la propriété Address au deux lignes de code.
La valeur de la propriété par défaut d'un objet range est "Value" et non "Address".
;-))
"MichDenis" a écrit dans le message de news: % Utilise cette synntaxe :
With Sheets("planning") cible = .Range(.Cells(k, 6)) End if
"fuzzy" a écrit dans le message de news:
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur 1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre ou non le nom de la sheet devant les ranges,... sans succès => si qqun a une idée,
Merci, FreD.
Sheets("différences données").Activate For k = 10 To line_planning If Sheets("différences données").Range(Cells(k, 9), Cells(k, 9)).Value = "NOK" Then cible = Sheets("planning").Range(Cells(k, 6)) colorie cible End If Next
Effectivement il y avait une coquille dans le code proposée,
With Sheets("planning")
Cible = .Range(.Cells(k, 6).Address)
End With
OU
Explication : L'objet Range demande une adresse pour retourner la valeur
d'une cellule et non la valeur d'une cellule. J'avais omis de
spécifier la propriété Address au deux lignes de code.
La valeur de la propriété par défaut d'un objet range est "Value" et non "Address".
;-))
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23VhEqhq0HHA.3536@TK2MSFTNGP06.phx.gbl...
Utilise cette synntaxe :
With Sheets("planning")
cible = .Range(.Cells(k, 6))
End if
"fuzzy" <roadbuster@free.fr> a écrit dans le message de news:
1185799063.430462.279750@l70g2000hse.googlegroups.com...
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur
1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre
ou non le nom de la sheet devant les ranges,... sans succès => si qqun
a une idée,
Merci,
FreD.
Sheets("différences données").Activate
For k = 10 To line_planning
If Sheets("différences données").Range(Cells(k, 9), Cells(k,
9)).Value = "NOK" Then
cible = Sheets("planning").Range(Cells(k, 6))
colorie cible
End If
Next
Explication : L'objet Range demande une adresse pour retourner la valeur d'une cellule et non la valeur d'une cellule. J'avais omis de spécifier la propriété Address au deux lignes de code.
La valeur de la propriété par défaut d'un objet range est "Value" et non "Address".
;-))
"MichDenis" a écrit dans le message de news: % Utilise cette synntaxe :
With Sheets("planning") cible = .Range(.Cells(k, 6)) End if
"fuzzy" a écrit dans le message de news:
Bonjour,
Ci-joint le code d'une macro déclarée dans un module, j'ai une erreur 1004 systématiquement à la ligne ou l'on affecte une valeur à "cible"
J'ai essayé de déclarer cette variable ou non, j'ai essayé de mettre ou non le nom de la sheet devant les ranges,... sans succès => si qqun a une idée,
Merci, FreD.
Sheets("différences données").Activate For k = 10 To line_planning If Sheets("différences données").Range(Cells(k, 9), Cells(k, 9)).Value = "NOK" Then cible = Sheets("planning").Range(Cells(k, 6)) colorie cible End If Next
Modeste
Bonsour® fuzzy avec ferveur ;o))) vous nous disiez :
En effet avec cette solution je n'ai plus l'erreur 1004 mais la 91 : "variable objet ou variable de bloc non définie"
Du coup j'ai fait un set de ma variable juste après la déclaration : Set cible = Range("A1")
et cela fonctionne !! (enfin ça fait un peu bidouille..)
j'en conclue donc comme l'avait bien deviné Denis que la variable Cible contient une adresse et non une valeur de cellule par l'utilisation de l'instruction Set, Cible est déclaré par défaut en type Variant ce qui n'est pas trés heureux ici !!!
Pour éviter ce genre de errements lors du débuggage il convient de prendre l'habitude d'ajouter en tete de chaque module Option Explicit pour cela , dans VBA Outils> Options> Onglet Editeur cocher : Déclaration des variables obligatoire
Définir chaque type de variable Public (ou Private) Cible As Range
puis dans VBA Outils> Options> Onglet général activer : arret sur les erreur non gérées
@+ ;o)))
Bonsour® fuzzy avec ferveur ;o))) vous nous disiez :
En effet avec cette solution je n'ai plus l'erreur 1004 mais la 91 :
"variable objet ou variable de bloc non définie"
Du coup j'ai fait un set de ma variable juste après la déclaration :
Set cible = Range("A1")
et cela fonctionne !! (enfin ça fait un peu bidouille..)
j'en conclue donc comme l'avait bien deviné Denis
que la variable Cible contient une adresse et non une valeur de cellule
par l'utilisation de l'instruction Set, Cible est déclaré par défaut en type
Variant
ce qui n'est pas trés heureux ici !!!
Pour éviter ce genre de errements lors du débuggage
il convient de prendre l'habitude d'ajouter en tete de chaque module
Option Explicit
pour cela , dans VBA Outils> Options>
Onglet Editeur
cocher : Déclaration des variables obligatoire
Définir chaque type de variable
Public (ou Private) Cible As Range
puis dans VBA Outils> Options>
Onglet général
activer : arret sur les erreur non gérées
Bonsour® fuzzy avec ferveur ;o))) vous nous disiez :
En effet avec cette solution je n'ai plus l'erreur 1004 mais la 91 : "variable objet ou variable de bloc non définie"
Du coup j'ai fait un set de ma variable juste après la déclaration : Set cible = Range("A1")
et cela fonctionne !! (enfin ça fait un peu bidouille..)
j'en conclue donc comme l'avait bien deviné Denis que la variable Cible contient une adresse et non une valeur de cellule par l'utilisation de l'instruction Set, Cible est déclaré par défaut en type Variant ce qui n'est pas trés heureux ici !!!
Pour éviter ce genre de errements lors du débuggage il convient de prendre l'habitude d'ajouter en tete de chaque module Option Explicit pour cela , dans VBA Outils> Options> Onglet Editeur cocher : Déclaration des variables obligatoire
Définir chaque type de variable Public (ou Private) Cible As Range
puis dans VBA Outils> Options> Onglet général activer : arret sur les erreur non gérées