IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Récupération de la cellule qui précède une case à cocher [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut Récupération de la cellule qui précède une case à cocher
    Bonjour à tous !

    Je gère dans mon programme excel des CheckBox, dès qu'une case est cochée, j'aimerais récupérer la valeur de la cellule qui la précède

    J'ai réussi à récupérer le nom de la cellule mais je n'arrive pas récupérer la valeur de la cellule d'avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 1 To 70
       ' Si la checkbox est cochée on récupère la cellule dans laquel elle se trouve
       If ActiveSheet.OLEObjects("checkbox" & i).Object.Value = True Then
          CelluleAssociee = Sheets("Feuil1").Shapes("checkbox" & i).TopLeftCell.Address
          ' Ici à la place de CelluleAssociee = G11 j'aimerais avoir F11 !
          TabInfosSPIE(ChangeL, i) = Workbooks(1).Worksheets(1).Range(CelluleAssociee)
       End If
    Next
    J'espère que quelqu'un pourra m'aider ! Merci d'avance et bonne fin de journée !

  2. #2
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    je ne suis pas sur d'avoir compris mais..
    c'est ça que tu veux faire?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TabInfosSPIE(ChangeL, i) = Workbooks(1).Worksheets(1).Range(CelluleAssociee).Offset(0,-1)

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Bonjour et merci pour ta réponse rapide !!

    Je ne connaissais pas cette méthode, je suis novice dans le domaine !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For i = 1 To 69
       If ActiveSheet.OLEObjects("checkbox" & i).Object.Value = True Then
            CelluleAssociee = Sheets("Feuil1").Shapes("checkbox" & i).TopLeftCell.Address
            TabInfosSPIE(ChangeL, i) = Workbooks(1).Worksheets(1).Range(CelluleAssociee).Offset(0, -1)
          End If                 
    Next
    Comment puis-je vérifier la valeur de Workbooks(1).Worksheets(1).Range(CelluleAssociee).Offset(0, -1) ?
    J'ai essayé d'afficher la valeur du tableau TabInfosSPIE(0,3) qui devrait contenir la valeur F11, mais cela ne fonctionne pas !

  4. #4
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    tu veux vérifier quoi exactement?
    tu peux simplement mette la valeur de la cellule dans une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A=Workbooks(1).Worksheets(1).Range(CelluleAssociee).Offset(0, -1)

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Je veux vérifier que la valeur de Workbooks(1).Worksheets(1).Range(CelluleAssociee).Offset(0, -1) est bien égale à F11...

    Mais j'ai déjà essayé cette solution !

  6. #6
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    with Workbooks(1).Worksheets(1)
    .Range(CelluleAssociee).Offset(0, -1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    with Workbooks(1).Worksheets(1)
        if .Range(CelluleAssociee).Offset(0, -1)=.range("F11") then
            '... ton code
        end if
    end with

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Pk with ???

  8. #8
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    c'est juste pour ne pas a chaque fois devoir retaper
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(1).Worksheets(1)
    comme ça les objets se trouvant dans cette feuille peuvent être appelé directement pas un point
    comme tu peux le voir dans la ligne du 'IF'

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Parfait !!! Au moins maintenant je sais que ça marche ! Merci pour ta rapidité et ta patience !

    Bonne fin de journée :-)

  10. #10
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    avec plaisir

    bonne fin de journée également

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Oups euh ... J'ai déclaré victoire trop vite !
    La condition if passe tout le temps !! Et puis bon E13 n'est pas égal à F11

  12. #12
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    est ce que tu dois bien comparer deux valeur sur une même feuille?

  13. #13
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Je ne dois pas comparer 2 valeurs sur une même feuille ^^ Du coup oui je me suis mal exprimée !

    Je veux juste récupérer la valeur de la cellule qui précède la checkbox (exemple en pièce jointe)
    Images attachées Images attachées  

  14. #14
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bon alors du coup tu dois faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    with Workbooks(1).Worksheets(1)
        if .Range(CelluleAssociee).Offset(0, -1)=workbooks(tonbook).worksheets(tafeuille).range("F11") then
    ...

  15. #15
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Aïe ... Me suis encore mal exprimée ... Les cellules sont bien sur une même feuille ! Et je veux récupérer la valeur de la cellule à gauche de la CheckBox si celle-ci elle est cochée...

    Je déteste faire perdre du temps au gens comme ça !!!! Désolé ...

  16. #16
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    et bien c'est ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TabInfosSPIE(ChangeL, i) = Workbooks(1).Worksheets(1).Range(CelluleAssociee).Offset(0, -1)
    mais je dois t'avouer que je ne te suis plus

  17. #17
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    A la base je voulais récupérer la valeur de la cellule qui précède la cellule qui contient la CheckBox... (Comme dans la pièce jointe que j'ai ajouté à un de mes posts).
    Que je récupère Range("F11"), F11 ou "Fibro" peut importe...

    Ensuite après que tu m'ai donné la réponse, je voulais simplement vérifier quelle était la valeur de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(1).Worksheets(1).Range(CelluleAssociee).Offset(0, -1)
    En l'affichant soit en MsgBox, soit dans une cellule pour être sûre que c'est bien l'instruction que je recherchais ...

    Je ne sais pas si c'est plus clair, en tout cas j'suis vraiment désolé de te faire perdre du temps comme ça ! Merci !

  18. #18
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    For i = 1 To 69
       If ActiveSheet.OLEObjects("checkbox" & i).Object.Value = True Then
            TabInfosSPIE(ChangeL, i) =  Sheets("Feuil1").Shapes("checkbox" & i).TopLeftCell.offset(0,-1)
        msgbox tabinfosspie(changel,i)
         End If                 
    Next

  19. #19
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Juste nickel ... Désolé pour cette perte de temps mais alors tu me sauves la vie !

    Bonne fin de journée et en espérant que je ne t'ai pas trop déprimé ^^

  20. #20
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    tu es sure??

    non non ne t'inquiétes pas lol

    bonne journée a toi aussi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/05/2015, 14h00
  2. Réponses: 27
    Dernier message: 22/03/2014, 15h24
  3. activer/désactiver une cellule à partir d'une case à cocher
    Par gc007 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/04/2012, 18h33
  4. [Excel VBA]fonction dans une cellule qui modifie une autre cellule
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/01/2007, 17h43
  5. [VBA-E2003] case à cocher qui verouille une case
    Par Slumpy dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/04/2006, 00h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo