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 :

VBA utilisation de Cells.Value [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut VBA utilisation de Cells.Value
    Bonjour,

    J'ai besoin de récupérer via une macro le contenu d'une cellule d'une autre feuille pour l'afficher comme valeur d'un label sur une popup. C'est pas très clair mais en gros voici mon bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub CommandButton9_Click()
        Workbooks.Open("\\myroot\BaseCommandes.xls").Worksheets("Commandes").Unprotect Password:="mypass"
        MyQte = Application.Worksheets("Commandes").Cells(8, 1).Value
        CommandesView.Label2.Caption = MyQte
        Worksheets("Commandes").Protect Password:="mypass" 
        For Each w In Workbooks
          If w.Name <> ThisWorkbook.Name Then
          w.Close savechanges:=False
          End If
        Next w
        CommandesView.Show
    End Sub
    Et grossomodo, si je remplace le contenu de la variable MyQte par "toto", le texte "toto" apparaît bien dans mon label2. Par contre, si je laisse le chemin vers cette cellule, je n'ai rien qui s'affiche dans mon label2.
    La cellule est sous format nombre, et se situe en H1 de la feuille "Commandes".
    L'affichage se fait sur le panneau "CommandesView" de la feuille "Accueil"

    Merci pour votre aide

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Essaies ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton9_Click()
    Dim Wb As Workbook
    Dim MyQte As String
     
    Application.ScreenUpdating = False
    Set Wb = Workbooks.Open("\\myroot\BaseCommandes.xls")
    MyQte = Wb.Worksheets("Commandes").Range("H1").Value
    CommandesView.Label2.Caption = MyQte
    Wb.Close savechanges:=False
    Set Wb = Nothing
    CommandesView.Show
    End Sub

  3. #3
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Cells(row, col) fait référence au contenu de la cellule

    Pour accéder à la cellule, puis à sa valeur (ou à tout autre propriété ou méthode), Tu passe par un objet Range Range(Cells(row, col)).Value.

    ... comme le montre le code de mercatog.

  4. #4
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Citation Envoyé par zazaraignée Voir le message
    Cells(row, col) fait référence au contenu de la cellule

    Pour accéder à la cellule, puis à sa valeur (ou à tout autre propriété ou méthode), Tu passe par un objet Range Range(Cells(row, col)).Value.

    ... comme le montre le code de mercatog.
    Peux-tu expliquer comment cette écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(row, col)).Value
    retourne autre chose qu'un message d'erreur ?

    cordialement,

    Didier

  5. #5
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    J'illustrais simplement l'idée générale. autrement j'aurais mis ça dans une balise de code. Désolée que ça ait provoqué une telle confusion.

    tout aussi cordialement

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par zazaraignée Voir le message
    Cells(row, col) fait référence au contenu de la cellule
    ...
    Non, Cells(row, col) fait référence à un objet Cellule... La preuve en est que tu as des propriétés et méthodes derrière (dont le .value dont tu parles)...

    C'est parce la propriété .value de l'objet Cells(r, c) est la propriété par défaut que l'on peut croire que Cells(r, c) renvoie la valeur de la cellule, mais c'est une confusion (très fréquente) qui m'amène à dire qu'il faut systématiquement utiliser la propriété dans le code.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par mercatog Voir le message
    Essaies ceci
    Cela fonctionne avec ta solution mercatog, merci beaucoup !

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

Discussions similaires

  1. [XL-2007] [VBA-Excel] Erreur 1004 sur utilisation de Cells
    Par hergios dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2012, 13h55
  2. [VBA] utilisation de thread
    Par nemesys971 dans le forum VBA Access
    Réponses: 19
    Dernier message: 10/10/2008, 11h49
  3. [VBA-E] utilisation de cells
    Par flamel dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 23/12/2006, 11h49
  4. [VBA] utiliser une macro contenue dans un autre classeur
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 01/02/2006, 19h46
  5. [EXCEL][VBA] Utilisation des formules Excel en VBA
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 16h08

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