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 :

variables de différents types


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut variables de différents types
    Bonjour , j'ai 3 variables 2 de types numériques et une de type chaine et que je pose comme condition :

    si x = coucou OU que y = coucou OU que z = coucou ( coucou étant une valeur de type string )

    et que je veux faire une opération sur les 2 variables numériques ( mais ici on sait pas si c'est x y ou z les variables de types numériques ) , comment je peux faire ?

    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    en gros comment traduire en langage VBA : les variables de type numérique ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    regardez j'ai cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ElseIf (x = "coucou") Or (y = "coucou") Or (z = "coucou") Then
            rrr =
    la variable rrr doit etre égale par exemple à la multiplication des 2 variables numériques vous voyez ce que je veux dire ? mais on sait pas ( à cause des OU ) quelles sont les 2 variables numériques ...

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 198
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    rrr=0
    if isnumeric(x)=true then rrr=x
    if isnumeric(y)=true then rrr=rrr+y
    if isnumeric(z)=true then rrr=rrr+z
    Je pense que c est ca que tu cherchai si j ai bien compris

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    non pas du tout lol

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 198
    Par défaut
    Citation Envoyé par Maxence45 Voir le message
    non pas du tout lol
    J ai relu ta question et je comprend toujours la meme chose...
    A par le fait que ce soit une multiplication mais le principe reste le meme...

    Enfin si tu peux présiser un peu?!

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    je crois que j'ai précisé au maximum , imagine 3 cellules de excel , toutes sur la meme ligne , 1 de ces cellules contient du texte , les 2 autres une valeur numérique , et tu dois écrire une fonction qui renvoit la moyenne des 2 numériques si l'une des 3 cellules contient une valeur de type chaine , comment tu fais vu qu'à la base tu sais pas dans quelles cellules sont les valeurs numériques ....

    on écrit donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ElseIf (x = "coucou") Or (y = "coucou") Or (z = "coucou") Then
            rrr =
    mais dans le rrr = je dois écrire la moyenne des 2 , mais je ne peux ni écrire (x+y) / 2 , ni (x+z) / 2... vu que je sais pas si c'est x , y ou z les porteurs de valeurs numériques , tu vois ce que je veux dire ?

    merci de pas poster de code tout fait sinon je progresse pas .

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Function MoyenneDesNumeriques(ByRef vTableau() As Variant) As Variant
    ' Cette fonction renvoit la moyenne des numériques présents dans le tableau
    '       vTableau.  Elle renvoit Null si aucun numérique n'est présent dans le
    '       tableau.
        Dim vSomme As Variant
        Dim lTotal As Long
        Dim lb As Long
        Dim ub As Long
        Dim i As Long
     
        lb = LBound(vTableau)
        ub = UBound(vTableau)
     
        For i = lb To ub
            If IsNumeric(vTableau(i)) Then
                vSomme = vSomme + 1
                lTotal = lTotal + vTableau(i)
            End If
        Next i
     
        If lTotal = 0 Then
            MoyenneDesNumeriques = vSomme / lTotal
        Else
            MoyenneDesNumeriques = Null
        End If
    End Function
    Envoyé par Maxence45:

    merci de pas poster de code tout fait sinon je progresse pas .
    Désolé pour le code tout fait, mais c'est plus long et difficile à expliquer et tu as le droit de progresser grâce à la connaissance des autres. T'as pas à réinventer la roue à chaque fois; t'as seulement qu'à comprendre le principe de fonctionnement.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    tu utilises des tableaux , j'ai pas le droit d'en utiliser vu que je ne les ai pas encore vu ...

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Alors tu ne peux que déterminer chaque type de donnée par une succession de trois Ifs dans lesquels tu additionnes et comptes chaque valeur en fonction de son type. Pas compliqué mais le code prend de l'espace. Dommage que tu ne sois pas rendu aux tableaux!

    Si toutes tes entrées sont des chaines, ta fonction devrait renvoyer Null...

Discussions similaires

  1. Tableaux avec différents types de variables
    Par Pulpe_de_Citron dans le forum Débuter
    Réponses: 5
    Dernier message: 06/05/2015, 12h00
  2. Réponses: 3
    Dernier message: 20/03/2010, 16h21
  3. Réponses: 23
    Dernier message: 05/02/2010, 10h38
  4. [LG]Problême Variable dynamique de types différents
    Par pierrOPSG dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 16h01
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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