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 :

Ecrire dans une cellule à partir d'une fonction vba [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Points : 66
    Points
    66
    Par défaut Ecrire dans une cellule à partir d'une fonction vba
    Bonjour,
    J’ai une fonction VBA. Pour le débogage je souhaite afficher dans une feuille Excel la valeur de certaines variable. J’utilise l’instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Workbooks("class_name.xls").Sheets("feille_name").Range(J29).Value = ma_variable
    A cette instruction, le programme s’arrete et n’affiche rien dans la cellule J29.
    merci d'avance.

  2. #2
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Ecris plutôt

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Points : 66
    Points
    66
    Par défaut
    j'ai le même comportement avec Range("J29")

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour,

    vérifier ce que contient donc la variable, certainement rien …

    Sinon une présentation claire & exhaustive est nécessaire car explication vague et micro bout de code ne suffisent pas !

  5. #5
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Salut,

    la valeur ma_variable semble être inconnue.
    Peut-être un problème de portée.

    Juste avant ta ligne de code, écris

    Et retourne le résultat

  6. #6
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Points : 66
    Points
    66
    Par défaut
    la variable contient bien une valeur. le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Msgbox ma_variable
    affiche bien la valeur de ma variable dans un msgbox. mais impossible de l'afficher dans une cellue!

  7. #7
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Salut,

    Tu as bien placé le code Msgbox juste avant la ligne que tu as citée?

    autrement dit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msgbox ma_variable
    Workbooks("class_name.xls").Sheets("feille_name").Range("J29").Value = ma_variable
    Dans l'affirmative, ta feuille est-elle protégée?
    Essaie de rentrer manuellement une valeur pour vérifier.

  8. #8
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Points : 66
    Points
    66
    Par défaut
    j'arrive à bien ecrire dans la cellule manuellement.
    le MsgBox est placé juste avant la ligne de code qui ne fonctionne pas.
    petite précision, la fonction est appelée dans une case Excel (=Fonction_name(paramètres))

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2014
    Messages : 41
    Points : 42
    Points
    42
    Par défaut
    Hello,

    La feuille s'appelle bien "feille_name" ?

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour,

    Citation Envoyé par ouinih Voir le message
    ..
    petite précision, la fonction est appelée dans une case Excel (=Fonction_name(paramètres))
    la précision qui manquait ... une fonction personnalisée ne peu pas modifier le contenu d'une autre cellule ...


    Description des limites des fonctions personnalisées dans Excel

  11. #11
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Points : 66
    Points
    66
    Par défaut
    Merci! du coup le plus simple est décrire dans un fichier texte. Voyez-vous d'autres moyens?

  12. #12
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Affichage direct dans la fenêtre Exécution du VBE via Debug.Print (consulter l'aide) …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  13. #13
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Points : 66
    Points
    66
    Par défaut
    merci

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut Modifier une autre cellule avec une fonction personalisée
    On peut contourner en quelque sorte le fait qu'une fonction personnalisée (utilisée dans une formule) ne peut écrire dans une autre cellule. Cela peut se faire en passant par une variable globale. Mettez dans une cellule =test1() et dans une autre =test2(), avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim ARGU1 As String
    Function test1() As String
        test1 = "Biensur"
        ARGU1 = "qu'on peut !"
    End Function
    Function test2() As String
        test2 = ARGU1
    End Function
    Ne serait-ce pas par ailleurs une source d'insécurité ?!

    Bien sûr la valeur n'est pas écrite dans la cellule, car il y a une fonction par laquelle on accède à une variable globale, la même pour toutes les cellules y accédant.

    On peut varier sur le même principe, par exemple mettre dans les 2 cellules =test1("que si") et =test2(2), avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim ARGU1 As String
    Dim ARGU2 As String
    Function test1(Optional ByVal s1 As String) As String
        test1 = "Biensur"
        ARGU1 = "qu'on peut !"
        If s1 <> "" Then ARGU2 = s1
    End Function
    Function test2(Optional ByVal i1 As Integer) As String
        test2 = ARGU1
        If i1 = 2 Then test2 = ARGU2
    End Function
    Mes salutations respectueuses.

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

Discussions similaires

  1. Filtrer une colonne à partir d'une cellule
    Par D-D-Du-06 dans le forum Excel
    Réponses: 7
    Dernier message: 21/04/2016, 11h26
  2. [XL-2013] Nom d'un onglet dans une formule à partir d'une cellule
    Par pounette dans le forum Excel
    Réponses: 3
    Dernier message: 04/12/2013, 15h06
  3. Compléter une cellule à partir d'une TextBox
    Par Le Marsu dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/08/2008, 22h48
  4. Lancer une macro à partir d'une cellule
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/09/2007, 16h58
  5. Réponses: 7
    Dernier message: 16/07/2007, 17h23

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