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 :

Formule SI/ET/OU en VBA


Sujet :

Macros et VBA Excel

  1. #21
    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
    voila :
    Fichiers attachés Fichiers attachés

  2. #22
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Le problème c'est que dans la colonne 17 la date est en format texte ! Exemple : 22 10 2018

    Voila comment la date est dans la colonne

  3. #23
    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
    A TESTER

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    With Sheets("SUIVTRANS EN COURS")
     For j = 2 To 5
           If .Cells(j, 14) = "" And .Cells(j, 17) = "** ** ****" And Abs(Cells(j, 18) < 15000) And (.Cells(j, 9).Value = "002160" Or .Cells(j, 9).Value = "001170" Or .Cells(j, 9).Value = "001121") Then
            .Cells(j, 13) = "PAS DE DECOMPTE"
            Else: Cells(j, 13) = "DECOMPTE A EMETTRE"
            End If
            Next j
            End With
    End Sub

  4. #24
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    voila :
    Voila mon fichier tu verras sa marche pas

    OBADJ.xlsx

  5. #25
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu es au courant que la colonne H n'est pas la 9ème ?
    Je suis aussi quasiment persuader que le test sur le format date est inutile ou, du moins, ne fera pas ce que tu souhaites.

  6. #26
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Tu es au courant que la colonne H n'est pas la 9ème ?
    Je suis aussi quasiment persuader que le test sur le format date est inutile ou, du moins, ne fera pas ce que tu souhaites.
    Oui exacte merci pour la correction de la colonne mais le problème c'est qu'il comprend pas le <15000 !

  7. #27
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par OBADJ Voir le message
    le problème c'est qu'il comprend pas le <15000 !
    Vérifie tes parenthèses.

  8. #28
    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 OBADJ , Menhir la forum
    à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    With Sheets("SUIVTRANS EN COURS")
     For j = 2 To 5
           If .Cells(j, 14) = "" And .Cells(j, 17) <> "" And CDbl(Cells(j, 18)) < 15000 And (.Cells(j, 8).Value = "002160" Or .Cells(j, 8).Value = "001170" Or .Cells(j, 8).Value = "001121") Then
            .Cells(j, 13) = "PAS DE DECOMPTE"
            Else: Cells(j, 13) = "DECOMPTE A EMETTRE"
            End If
           Next j
           End With
    End Sub

  9. #29
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    à tester
    Il te manque un "." devant un Cells.

  10. #30
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Bonjour

    ça ne fonctionne toujours pas !

    En revanche avec ce code il me sors les commentaire sauf qu'il prend pas en comptes la ligne des <15000 :

    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
    Sub test3()
    With Sheets("SUIVTRANS EN COURS")
        Derligne = .Range("A" & Rows.Count).End(xlUp).Row
     
        For j = 2 To Derligne
     
        If .Cells(j, 13).Value = "" And _
                    .Cells(j, 14).Value = "" And _
                    .Cells(j, 19).Value < 15000 And _
                    .Cells(j, 8).Value = "002160" Or _
                    .Cells(j, 8).Value = "001170" Or _
                    .Cells(j, 8).Value = "001121" Then
                     .Cells(j, 13).Value = "PAS DE DECOMPTE"
     
                Else
     
                    .Cells(j, 13).Value = "DECOMPTE A EMETTRE"
     
                End If
     
            Next j
     
        End With
     
    End Sub

  11. #31
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par OBADJ Voir le message
    ça ne fonctionne toujours pas !
    Et tu fais toujours aussi peu d'effort pour expliquer tes dysfonctionnements.
    Ca devient pénible...

    En revanche avec ce code il me sors les commentaire sauf qu'il prend pas en comptes la ligne des <15000 :
    On recommence : VERIFIE TES NUMEROS DE COLONNE !!!!

  12. #32
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Menhir je suis désolé mais la formule de base est complexe... Concernant les colonnes c'est bon j'ai tous rectifié !

    Je me réexplique :

    Il y a absolument 3 conditions obligatoire à respecter pour mettre le commentaire "Pas de décompte" :

    Si la cellule (j,13) est vide et que si la cellule (j,14) est vide et que cellule (j,17) est vide et que (j,19)<15000 alors "pas de décompte" sinon "décompte à émettre"

    Deuxième possibilité : si la cellule (j,13) est vide et que si la cellule (j,14) est vide et que la cellule(j,8)="002160" ou "001170" ou "001121" et que (j,19) <15000 alors "pas de décompte" sinon "décompte à émettre"
    J'espère tu as mieux compris la logique et se que je voudrais faire dans ma formule !

  13. #33
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Ce que je suis en train de dire c'est exactement cette formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ET(N2 ="";Q2="";OU(H2="001121";H2="001170";H2="002160");ABS(S2)<15000);"PAS DE DECOMPTE";"DECOMPTE A EMETTRE")

  14. #34
    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
    comment ça marche pas ??
    Fichiers attachés Fichiers attachés

  15. #35
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    comment ça marche pas ??
    Le commentaire "pas de décompte" ne s'affiche pas quand on lance la macro dans ton fichier

  16. #36
    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
    bien sure !!! vu que tu n'as pas remplacer 5 par la dernière ligne mon ami
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
     
    With Sheets("SUIVTRANS EN COURS")
     For j = 2 To 38 ' à remplacer par la dernière ligne
           If .Cells(j, 14) = "" And .Cells(j, 17) <> "" And CDbl(Cells(j, 18)) < 15000 And (.Cells(j, 8).Value = "002160" Or .Cells(j, 8).Value = "001170" Or .Cells(j, 8).Value = "001121") Then
            .Cells(j, 13) = "PAS DE DECOMPTE"
            Else: Cells(j, 13) = "DECOMPTE A EMETTRE"
            End If
           Next j
           End With
     
    End Sub

  17. #37
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Le résultat n'est pas bon car par exemple de la ligne 20 à 38 il mets pas de décompte alors que en colonne 17 ya une date donc elle n'est pas vide donc ça aurait du être "Décompte à émettre.

  18. #38
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Si c'est bon ça marche tu avais mis différents de vide pour la colonne 17 !

    En revanche BENNASR,

    Tu vois en colonne 17 dans mes vide, il y a des espaces donc sur mon fichier principale la macro ne reconnait pas les cellules vide en colonne 17....

  19. #39
    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
    donnez svp un exemple de l'erreur dans la feuille jointe
    Fichiers attachés Fichiers attachés

  20. #40
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2018
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2018
    Messages : 121
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    donnez svp un exemple de l'erreur dans la feuille jointe
    Non c'est bon ça fonction mais j'ai du changer cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     If .Cells(j, 14) = "" And .Cells(j, 13) = "" And .Cells(j, 17) = "" And CDbl(Cells(j, 18)) < 15000 And (.Cells(j, 8).Value = "002160" Or .Cells(j, 8).Value = "001170" Or .Cells(j, 8).Value = "001121") Then
            .Cells(j, 13) = "PAS DE DECOMPTE"

    C'est (j,17)="" et non (j,17) <>""

    Mais sinon j'ai un soucis sur mon fichier d'origine dans ma colonne 17 j'ai des cellules vide mais a l’intérieur il y a des espaces donc la macro ne la reconnait aps comme une cellule vide du coup ca fausse tous le resultat :/

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. introduire formule dans une cellule via VBA
    Par lilly91 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2010, 16h16
  2. [XL-2007] Résulats différents avec Datdif dans formule Excel et Datediff en VBA ?
    Par Jay29 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/10/2009, 16h12
  3. Inscrire une formule dans une cellule par VBA
    Par marc56 dans le forum Excel
    Réponses: 6
    Dernier message: 23/11/2008, 23h57
  4. Formule excel non reconnue en VBA
    Par geopolux dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/10/2008, 18h05
  5. Formule et variable (déplacé forum vba)
    Par choupinette370 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/11/2007, 23h08

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