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
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  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 696
    Points
    6 696
    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
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  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
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    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 122
    Points : 55 921
    Points
    55 921
    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.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  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, 12h55
  2. [VBA] utilisation de thread
    Par nemesys971 dans le forum VBA Access
    Réponses: 19
    Dernier message: 10/10/2008, 10h49
  3. [VBA-E] utilisation de cells
    Par flamel dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 23/12/2006, 10h49
  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, 18h46
  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, 15h08

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