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 :

Variable attaché à une condition


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut Variable attaché à une condition
    Bonjour
    Svp j'ai besoin de savoir comment on peut définir un variable par une condition if lorsqu'elle se vérifier.
    J'aimerai que le Variable me donne le numéro de la dernière ligne qui vérifier la condition .
    aidez moi svp merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur acousticien
    Inscrit en
    Septembre 2015
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur acousticien
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2015
    Messages : 122
    Par défaut
    Bonjour,

    Je n'ai pas vraiment compris ta demande, que cherche tu à faire exactement ?

    Par exemple, si tu as une colonne dans laquelle se trouvent des nombres croissants et que tu veux trouver la ligne à partir de laquelle le nombre est supérieur à 10 tu peux faire quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Recherche_valeur()
     
        Dim i As Integer
        Dim var As Byte
     
        var = 10
     
        Do
            i = i + 1
        Loop While Cells(i, 1) < var
     
        MsgBox (i)
     
    End Sub

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour HIMBAK, flav_cm bonjour tout le monde
    si tu cherche l'adresse via un textbox adapte ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Dim plage As Range
    Set plage = Sheets("Feuil1").Range("A2:A" & [A65536].End(xlUp).Row)
    valrecherché = CDbl(TextBox1.Value)
     i = 0
    For Each Cell In plage
     If Cell.Value = valrecherché Then
       MsgBox Cell.Address
       End If
       Next
       End
    End Sub

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut
    Merci de vos réponses et pardonnée moi si j'ai pas bien expliqué mon problème .
    - dans mon Code je veux créer un variable qui prend comme valeur le numéro de la ligne qui vérifier une condition pour l'utiliser dans le cas de Else :


    If condition Then résultat1
    Else résultat 2

    Alors pour moi résultat 2 est dépend de résultat 1

    Dans mon résultat 2 je dois créer une formule qui utilise une cellule de la dernière ligne qui vérifier la condition
    résultat 1
    Merci a vous

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    pour moi j'ai pas compris ta requête
    Je crois que si tu poste ton code entre deux balises avec un peu de commentaire tu aura une réponse adéquate
    cordialement

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut mon 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
     
     
    Sub calc_rep()
     
    Dim DernLigne2 As Integer
     
    DernLigne2 = 10 + Range("A" & Rows.Count).End(xlUp).Row
     
    For DernLigne2 = 10 To Range("A" & Rows.Count).End(xlUp).Row
     
    If Range("K" & DernLigne2).Value = ""    Then
     
    Range("k" & DernLigne2).Offset(0, 1).Value = Range("K" & DernLigne2, Range("K" & DernLigne2).Offset(0, -8)).Value
     
    Else   'mon problème est dans cette partie du code je veux que le variable DernLigne2 me donne le numéro de la dernière ligne utiliser dans la partie (then) 
    Range("K" & DernLigne2).Offset(0, 1).FormulaR1C1 = "= R[0]C[-9]/R[" & DernLigne2 & "]C[-9] * R[-1]C[-9]"
     
     
    End If
    Next DernLigne2
     
    End Sub

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu cherche quoi au juste ? La dernière cellule non vide d'une colonne ? Où peut se trouver une certaine valeur dans une colonne ? Comme tu expliques, c'est incompréhensible, précise ta demande !

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,

    Tu cherche quoi au juste ? La dernière cellule non vide d'une colonne ? Où peut se trouver une certaine valeur dans une colonne ? Comme tu expliques, c'est incompréhensible, précise ta demande !
    le probleme est dans cette partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Range("k" & DernLigne2).Offset(0, 1).FormulaR1C1 =  "= R[0]C[-9]/R[" & DernLigne2 & "]C[-9] * R[-1]C[-9]"
    la cellule (Range("k" & DernLigne2).Offset(0, 1)) contient une formule ( "= R[0]C[-9]/R[" & DernLigne2 ??????????? & "]C[-9] * R[-1]C[-9]" ) mais je veux que le variable DernLigne2 prend le numero de la dernière ligne vide

  9. #9
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    teste comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub Test()
     
        Dim DernLigne2 As Long
     
        'sur la colonne K de la feuille active
        DernLigne2 = ActiveSheet.Cells(Rows.Count, 11).End(xlUp).Row + 1
     
        Range("K" & DernLigne2).Offset(0, 1).FormulaR1C1 = "= R[0]C[-9]/R[" & DernLigne2 & "]C[-9] * R[-1]C[-9]"
     
    End Sub

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut
    il ne donne rien !!!!

    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
    Sub calc_rep()
    Dim DernLigne2 As Integer
    Dim nbDLignVide As Integer
    
    DernLigne2 = 10 + Range("k" & Rows.Count).End(xlUp).Row
    
    nbDLignVide = le numero de la derniere ligne qui contien une cellule vide dans la colonne K !!!!!!!!!
    
    For DernLigne2 = 10 To Range("k" & Rows.Count).End(xlUp).Row
    
    If Range("k" & DernLigne2).Value = "" Then
    
    Range("k" & DernLigne2).Offset(0, 1).Value = Range("k" & DernLigne2, Range("k" & DernLigne2).Offset(0, -8)).Value
    
    Else
    Range("k" & DernLigne2).Offset(0, 1).FormulaR1C1 = "= R[0]C[-9]/R[" & nbDLignVide & "]C[-9] * R[-1]C[-9]"
    End If
    Next DernLigne2
    
    End Sub

    comment je peut déclaré le variable nbDLignVide ????

  11. #11
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    teste ça :
    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
     
    Sub calc_rep()
     
        Dim DernLigne2 As Integer
        Dim nbDLignVide As Integer
     
        'ça, ça ne sert à rien puisqu'ensuite tu t'en sers dans la boucle et c'est réinitialisé à 10 !!!
        DernLigne2 = 10 + Range("k" & Rows.Count).End(xlUp).Row
     
        'la première cellule vide (+1) de la colonne K
        nbDLignVide = ActiveSheet.Cells(Rows.Count, 11).End(xlUp).Row + 1
     
        For DernLigne2 = 10 To nbDLignVide
     
            With Range("k" & DernLigne2)
     
                If .Value = "" Then
                    .Offset(, 1).Value = .Offset(, -8).Value
                Else
                    .Offset(0, 1).FormulaR1C1 = "= R[0]C[-9]/R[" & nbDLignVide & "]C[-9] * R[-1]C[-9]"
                End If
     
            End With
     
        Next DernLigne2
     
    End Sub

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut
    veuillez voir le fichier Excel pour comprendre mon problème merci beaucoup pour votre aide.

    test.xlsm

    dans la colonne L j'ai fais entrer les formules manuellement pour comparer les résultats entre la colonne K et L

    mon objectif c'est d' avoir les mêmes résultats dans la colonne K mais avec un macro.
    merci encore une fois

    comment récupère le numéro de linge de la cellule vide dans une plage de données ?
    merci d’avance

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    FormulaR1C1 travail en position relative?
    Cela veut dire là où je suis plus ou moins la ou je vais!

    R[jevais-jesuis] en d'autres termes je calcul la distance à parcourir!
    Dernière modification par Invité ; 20/04/2016 à 08h22.

  14. #14
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour ami
    je voi que dans la colonne M de ton fichier "Test" tu multiplie C * par 1 !!!
    Exemple M33= C33*M$29/C$29 alors que M29/C29 égal à 1
    Aussi je te conseille d'utiliser l'enregistreur automatique Macro et puis tu adaple tes formule
    si non tu peux joindre un fichier test avec des commentaires sur le fichier excel (formule, ou placer cette formule .... ect)
    bonne journée

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/01/2017, 16h07
  2. [MySQL] Variable dans une condition where
    Par choupinou22 dans le forum PHP & Base de données
    Réponses: 43
    Dernier message: 11/04/2015, 19h47
  3. affichage par rapport à une condition sur 2 variables
    Par kilian67 dans le forum Langage
    Réponses: 3
    Dernier message: 22/07/2008, 13h32
  4. Réponses: 8
    Dernier message: 16/05/2007, 21h16
  5. Réponses: 11
    Dernier message: 16/10/2006, 14h05

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