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 :

Pas de résultat dans ma variable [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 102
    Par défaut Pas de résultat dans ma variable
    Bonjour chers Foouriiimiiistes de luxe ,

    je suis entrain de développer un petit text de code qui permer de remplir deux cellule par leur valeur + une varriable X qui change selon des condition ,
    OR en fin de compte rien ne change

    Voilà le CODE :

    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
    27
    28
     
     
     
    Dim X, Y As Variant
     
    Y = WBS.Sheets(1).Range("G" & j + 2).Value
    If Y <= 0.3 Then
    X = 3
    Else
    If Y = 0.5 Then
    X = 1.5
    Else
    If Y = 0.75 Or Y = 0.85 Then
    X = 1.3
    If Y >= 1.25 Then
    X = 1.2
    End If
    End If
    End If
    End If
     
    If IsNumeric(X) Then
    WBC.Sheets(i).Range("F3") = X & WBC.Sheets(i).Range("F3").Value
    WBC.Sheets(i).Range("F7") = X & WBC.Sheets(i).Range("F7").Value
    Else
    WBC.Sheets(i).Range("F3") = "Not applicable"
    WBC.Sheets(i).Range("F7") = "Not applicable"
    End If

    Merci d'avance !!!

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Qu'entend-tu par "Rien ne change" ? X ne change pas de valeur ? ça voudrait dire que tu ne rentre dans aucune condition ?

    Si oui, essaye de faire un MsgBox sur ta valeur Y déjà pour voir combien ça te renvoie, ça va peut-être t'aider à trouver ton souci

    Dans un deuxième temps, je te conseille aussi d'utiliser des ElseIf, plutôt que des If imbriqués, ça sera plus lisible

    Et c'est quoi WBS et WBC ??
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Si y est supérieur à 0.3 inférieur à 1.25 différent de 0.5 de 0.75 et de 0.85

    X ne vaudra rien

    Si tu veux additionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If IsNumeric(X) Then
    WBC.Sheets(i).Range("F3") = X + WBC.Sheets(i).Range("F3").Value
    WBC.Sheets(i).Range("F7") = X + WBC.Sheets(i).Range("F7").Value
    Else
    Le & n'additionne pas mais concatenne

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 102
    Par défaut
    Quick response !

    Merci à vous deux

    illight

    J'ai utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox ("X = " & X & " Y =  " & Y)
    et X ne vaut toujours rien :/ .. et malgrés on rentre dans une condition ?

    WBC et WBS sont les classeur cible et source enfait c'est un long traitement ,

    et le blocage etst à ce niveau , je veux juste un programme pareil qui fais des test par condition tel que celle dans le code et qui renvoi la valeur de F3 et F7 selon la valeur de X

    EngueEngue ;

    Merci également , et c'est trés intelligent de ta part de poser la question mais enfait , la valeur de "F3" par exemple soit :
    la valeur de stocké en X + cell déja dans la cellule F3 ,
    et pareil pour la cellule F7
    est ce que ce code résolve le probléme.. si oui le probléme restera dans la valeur de X !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If IsNumeric(X) Then
    WBC.Sheets(i).Range("F3") = X & WBC.Sheets(i).Range("F3").Value
    WBC.Sheets(i).Range("F7") = X & WBC.Sheets(i).Range("F7").Value

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Le problème vient donc de là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Y = WBS.Sheets(1).Range("G" & j + 2).Value
    j ne bouge pas dans ton code...
    Alors si j vaut 0 qu'est ce qu'il y a en G2 ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 102
    Par défaut
    Il ya dans G2 1,25

    mais les condition se faite avec des 1.25 et non plus la virgule est ce que ça qui fais le probléme !!

    est ce qu'il y'as une autre structure de code qui pourras me faire la méme chose !


    Merci bcp !!

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Il te manque un Else dans ton CODE.

    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
    If Y <= 0.3 Then
    X = 3
    Else
    If Y = 0.5 Then
    X = 1.5
    Else
    If Y = 0.75 Or Y = 0.85 Then
    X = 1.3
    Else
    If Y >= 1.25 Then
    X = 1.2
    End If
    End If
    End If
    End If

  8. #8
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    La réponse à ta question c'est pas la réponse qu'il t'avais déjà faite :

    Citation Envoyé par EngueEngue Voir le message

    Si tu veux additionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If IsNumeric(X) Then
    WBC.Sheets(i).Range("F3") = X + WBC.Sheets(i).Range("F3").Value
    WBC.Sheets(i).Range("F7") = X + WBC.Sheets(i).Range("F7").Value
    Else
    Le & n'additionne pas mais concatenne
    ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  9. #9
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 102
    Par défaut
    Non , parceque la valeur dans les cellule F3 et F7 sont des text , et moi je veux que la valeur de ces deux cellule soit comme suit :

    Exemple;

    sie la valeur de F3 = Max

    et X vaut 1,2

    La valeur de F3 devrais devenir = 1.2MAX

    Merci encore et encore une fois !

  10. #10
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Marche chez moi
    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
    Dim X
    Y = Feuil1.Range("G" & j + 2)
    If Y <= 0.3 Then
    X = 3
    Else
    If Y = 0.5 Then
    X = 1.5
    Else
    If Y = 0.75 Or Y = 0.85 Then
    X = 1.3
    Else
    If Y >= 1.25 Then
    X = 1.2
    End If
    End If
    End If
    End If
     
    If IsNumeric(X) Then
    Feuil1.Range("F3") = X & Feuil1.Range("F3").Value
    Feuil1.Range("F7") = X & Feuil1.Range("F7").Value
    Else
    Feuil1.Range("F3") = "Not applicable"
    Feuil1.Range("F7") = "Not applicable"
    End If

  11. #11
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 102
    Par défaut
    Yeeeeeeeeees !!! Tu est top toi .. merci beaucoup .. Chef !

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

Discussions similaires

  1. POO, stocker le résultat dans des variables
    Par nicolas2603 dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2012, 11h40
  2. [Batch] lire dans un fichier et mettre le résultat dans une variable
    Par danydan01 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 09/06/2010, 12h28
  3. Réponses: 11
    Dernier message: 02/09/2009, 11h06
  4. évaluer une commande et avoir le résultat dans une variable
    Par ggnore dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 10/06/2008, 17h36
  5. [SQL] Indication si pas de résultat dans requête
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/11/2007, 13h16

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