Valeur d'une cellule d'une feuille excel

mimi_939 50 Messages postés vendredi 31 décembre 2004Date d'inscription 3 août 2007 Dernière intervention - 5 juil. 2007 à 15:16 - Dernière réponse : JM247L 444 Messages postés mardi 27 mars 2007Date d'inscription 1 mars 2011 Dernière intervention
- 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!
Afficher la suite 

32 réponses

Répondre au sujet
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 5 juil. 2007 à 15:20
0
Utile
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
Commenter la réponse de jrivet
mimi_939 50 Messages postés vendredi 31 décembre 2004Date d'inscription 3 août 2007 Dernière intervention - 5 juil. 2007 à 15:24
0
Utile
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 ,
Commenter la réponse de mimi_939
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 5 juil. 2007 à 15:27
0
Utile
Salut,
Dans ce cas donne un peu plus de code...

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

JML
 Partageons notre savoir et nos acquis
Commenter la réponse de JM247L
cs_mik67 40 Messages postés mardi 12 octobre 2004Date d'inscription 13 juillet 2007 Dernière intervention - 5 juil. 2007 à 15:34
0
Utile
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
Commenter la réponse de cs_mik67
mimi_939 50 Messages postés vendredi 31 décembre 2004Date d'inscription 3 août 2007 Dernière intervention - 5 juil. 2007 à 16:06
0
Utile
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.
Commenter la réponse de mimi_939
cs_mik67 40 Messages postés mardi 12 octobre 2004Date d'inscription 13 juillet 2007 Dernière intervention - 5 juil. 2007 à 16:10
0
Utile
Au fait pourquoi tu utilise 'x' ("F" & x) ? Cette instruction est contenue dans une boucle ?
Commenter la réponse de cs_mik67
JM247L 444 Messages postés mardi 27 mars 2007Date d'inscription 1 mars 2011 Dernière intervention - 5 juil. 2007 à 16:11
0
Utile
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
Commenter la réponse de JM247L
mimi_939 50 Messages postés vendredi 31 décembre 2004Date d'inscription 3 août 2007 Dernière intervention - 5 juil. 2007 à 16:14
0
Utile
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
Commenter la réponse de mimi_939
mimi_939 50 Messages postés vendredi 31 décembre 2004Date d'inscription 3 août 2007 Dernière intervention - 5 juil. 2007 à 16:20
0
Utile
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.
Commenter la réponse de mimi_939
JM247L 444 Messages postés mardi 27 mars 2007Date d'inscription 1 mars 2011 Dernière intervention - 5 juil. 2007 à 16:22
0
Utile
Je n'ai pas d'autre souci que
   If InStr(source1, ThisWorkbook.Source) > 0 Then

JML
 Partageons notre savoir et nos acquis
Commenter la réponse de JM247L
cs_mik67 40 Messages postés mardi 12 octobre 2004Date d'inscription 13 juillet 2007 Dernière intervention - 5 juil. 2007 à 16:24
0
Utile
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
Commenter la réponse de cs_mik67
JM247L 444 Messages postés mardi 27 mars 2007Date d'inscription 1 mars 2011 Dernière intervention - 5 juil. 2007 à 16:28
0
Utile
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
Commenter la réponse de JM247L
mimi_939 50 Messages postés vendredi 31 décembre 2004Date d'inscription 3 août 2007 Dernière intervention - 5 juil. 2007 à 16:30
0
Utile
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.
Commenter la réponse de mimi_939
cs_mik67 40 Messages postés mardi 12 octobre 2004Date d'inscription 13 juillet 2007 Dernière intervention - 5 juil. 2007 à 16:34
0
Utile
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
Commenter la réponse de cs_mik67
mimi_939 50 Messages postés vendredi 31 décembre 2004Date d'inscription 3 août 2007 Dernière intervention - 5 juil. 2007 à 16:39
0
Utile
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
Commenter la réponse de mimi_939
mimi_939 50 Messages postés vendredi 31 décembre 2004Date d'inscription 3 août 2007 Dernière intervention - 5 juil. 2007 à 16:40
0
Utile
Feuil3 se nomme "Etats de Pilotage"
Je ne dois pas utiliser ce nom pour l'instruction ?
Commenter la réponse de mimi_939
cs_mik67 40 Messages postés mardi 12 octobre 2004Date d'inscription 13 juillet 2007 Dernière intervention - 5 juil. 2007 à 16:43
0
Utile
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 ?
Commenter la réponse de cs_mik67
cs_mik67 40 Messages postés mardi 12 octobre 2004Date d'inscription 13 juillet 2007 Dernière intervention - 5 juil. 2007 à 16:44
0
Utile
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
Commenter la réponse de cs_mik67
JM247L 444 Messages postés mardi 27 mars 2007Date d'inscription 1 mars 2011 Dernière intervention - 5 juil. 2007 à 16:45
0
Utile
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
Commenter la réponse de JM247L

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Valeur d'une cellule d'une feuille excel - page 2