Valeur d'une cellule d'une feuille excel

mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007 - 5 juil. 2007 à 15:16
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 - 5 juil. 2007 à 17:29
Bonjour,

j'ai une question dont la réponse est probablement très simple mais comme je suis débutante en vba, ça ne me saute pas aux yeux.
Je suis en train de développer un module.
Dans ce module, j'ai besoin de  récupérer la valeur d'une cellule excel contenu dans une feuille du classeur. Cette feuille n'est pas active lors du traitement.
J'ai tout simplement fait :

source = Sheets("feuil1").Range("F" & x).Value

Cependant lorsque que j'exécute le traitement, j'ai une erreur : 
   Erreur d'exécution '9'
   L'indice n'appartient pas à la sélection

Pouvez-vous m'aider ?

Merci d'avance!

32 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 juil. 2007 à 15:20
Salut,
Est ce que la feuille nommée feuil1 (et non Feuil1) existe?
Est ce que x à une valeur correcte?

@+: Ju£i?n
Pensez: Réponse acceptée
0
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 15:24
J'ai mis "feuil1" comme exemple mais dans mon module j'ai mis le nom de la feuille existante et x a bien une valeur correcte
C'est pour ça que je ne comprends pas!
Où aurais je commis une erreur ,
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 juil. 2007 à 15:27
Salut,
Dans ce cas donne un peu plus de code...

@+: Ju£i?n
Pensez: Réponse acceptée
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
5 juil. 2007 à 15:34
Bonjour,
La ligne de code est Ok mais que vaut x au moment de son utilisation ?

JML
 Partageons notre savoir et nos acquis
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
5 juil. 2007 à 15:34
Essaye de découper ton instruction et utilise le pas-à-pas pour tester tes valeurs en mettant un point d'arret (ou une messageBox). Je tenterais quelque chose du genre  :

Feuil1.Range("F" & x).Select
source = ActiveCell.Value


MsgBox source
0
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 16:06
Le découpage semble marcher mails il y a encore une petite erreur :
La méthode Select de la classe Range a échoué.

C'est curieux car au début ça a marché et maintenant ça me fait cette erreur sans avoir rien modifié; l'undice x a toujours une valeur correcte.
0
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
5 juil. 2007 à 16:10
Au fait pourquoi tu utilise 'x' ("F" & x) ? Cette instruction est contenue dans une boucle ?
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
5 juil. 2007 à 16:11
Si tu considère que "l'undice x a toujours une valeur correcte", le système, d'après le message d'erruer, semble considérer différemment
A mon avis si tu ne donnes pas plus de code et entre autre celui ou "x" prend une valeur on aura du mal à t'aider

JML
 Partageons notre savoir et nos acquis
0
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 16:14
Voila le code de mon module :

Sub DateDebutFais()
    Dim x As Integer
    Dim source1 As String
    Dim marge As Integer
    'Dim dateJour As Date
   
    marge = 10 'Paramétrages
    For x = 6 To 31
        Feuil3.Range("F" & x).Select
        source1 = ActiveCell.Value
        'source1 = Application.Sheets("Etats de Pilotage").Range("F" & x).Value
        If InStr(source1, ThisWorkbook.source) > 0 Then
            Range("AC" & x).Value = Range("AC" & x).Value + marge
        End If
    Next x
End Sub

Le programme plante des le debut! quand x vaut 6
0
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 16:20
Avec tous ls tests que j'ai effectué, il semblerait que le x ne soit pas en cause.
Mais vu mon niveau de débutante, je ne peux pas l'affirmer.
Merci pour votre aide.
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
5 juil. 2007 à 16:22
Je n'ai pas d'autre souci que
   If InStr(source1, ThisWorkbook.Source) > 0 Then

JML
 Partageons notre savoir et nos acquis
0
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
5 juil. 2007 à 16:24
J'ai testé chez moi juste au niveau du Feuil3.Range("F" & x).Select ....ca tourne nikel
Par contre je vois ce que tu veux faire avec ThisWorkbook.source parce que ça génère une erreur chez moi
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
5 juil. 2007 à 16:28
Quel est le but de cette ligne de code ? Si c'est juste pour controller les erreurs utilise If Err<>0 Then ...

JML
 Partageons notre savoir et nos acquis
0
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 16:30
source est une variable que j'ai déclaré dans ThisWorkbook et que j'utilise dans ce module.

Mais tout à l'heure, tout a marché, c'est pour ça que je ne comprends pas pourquoi maintenant ça plante!
Je m'excuse si mes explications ne sont pas claires, j'essaie de faire au mieux.
0
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
5 juil. 2007 à 16:34
Tu veux nous expliquer le principe global de tes instructions s'il te plait ?
A quel resultat veux tu arriver ?
Donne nous un exemple qu'on puisser 'cerner' le problème et voir éventuellement s'il n'y aurait pas une autre solution envisageable
0
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 16:39
Sub DateDebutFais()
    Dim x As Integer
    Dim source1 As String
    Dim marge As Integer
    'Dim dateJour As Date
   
    marge = 10 'Paramétrages
    For x = 6 To 31
        Feuil3.Range("F" & x).Select 
        source1 = ActiveCell.Value
// je récupère la valeur de la cellule de la colonne F et de la feuille Feuil3 et veux savoir si cette valeur 5de type String) contient une chaîne de caractères(ThisWorkbook.source). Si elle est contenue alors je modifie la valeur d'une cellule de la même feuille Feuil3
        'source1 = Application.Sheets("Etats de Pilotage").Range("F" & x).Value
        If InStr(source1, ThisWorkbook.source) > 0 Then
            Range("AC" & x).Value = Range("AC" & x).Value + marge
        End If
    Next x
End Sub
0
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 16:40
Feuil3 se nomme "Etats de Pilotage"
Je ne dois pas utiliser ce nom pour l'instruction ?
0
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
5 juil. 2007 à 16:43
1/  Est-ce que ThisWorkbook.source a effectivement une valeur ? (est ce que tu passes par un point d'arret ou une boite de dialogue (MessageBox) pour t'assurer que cette valeur existe?)

2/ Range("AC" & x) : tu fusionne les colonnes A et C dans cette instruction ?
0
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
5 juil. 2007 à 16:44
Quand tu dis que ta feuille se "nomme" c'est de l'onglet de ton classeur Excel que tu parles ? Si c'est le cas ta feuille s'appelle toujours implicitement Feuil3
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
5 juil. 2007 à 16:45
Tu as bien déclaré Source1 mais pas Source
de plus si Source est une variable  ou la prend elle (sa source)
ThisWorkbook n'a pas la propriété de ActiveWorkbook ...
JML
 Partageons notre savoir et nos acquis
0
Rejoignez-nous