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 :

VBA - excel facture


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut VBA - excel facture
    Bonjour, j'ai un petit exercice qui me pose probleme, etant donné que je viens de commencer la programmation.
    On a le tableau ci dessus

    On me demande:

    Ecrire un programme qui colorie les cellules donnant le montant des factures de la manière
    suivante : si la facture n'est pas payée et que son montant est strictement inférieur à 200, la
    cellule est coloriée en jaune ; si la facture n'est pas payée et que son montant est supérieur ou
    égal à 200, la cellule est coloriée en rouge.
    Rappel : si c désigne une cellule : c.Interior.ColorIndex=6 colorie la cellule en jaune ;
    si c désigne une cellule : c.Interior.ColorIndex=3 colorie la cellule en rouge.

    Mais je ne vois pas bien par ou commencer, pouvez vous m'aider ? comment designer les factures qui se sont pas payés ici ?
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Bonjour Meuh, bienvenue sur le forum.
    As-tu essayé la mise en forme conditionnelle dans Excel ? Ça t'éviterait une macro. Format -> Mise en forme conditionnelle. Tu peux conditionner le format selon ce que tu as dans les cellules. Au début on tatonne mais après on sait faire

    NB - Tu devrais jeter un oeil ici, je suis certain que tu comprendras pourquoi
    Bonne journée

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    lol oui je comprends pourquoi, je suis désolée

    Mais ce n'est meme pas un exo que j'ai à faire je m'entraine pour mon partiel qui est mardi
    Pour la mise en forme conditionelle, on ne l'a pas utilisé avec VBA

    Pour l'instant j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub macro 
    Dim ligne as integer
        For ligne= 1 to 7
            If cells(ligne,4) < 200 then
                 cells(ligne,4).Interior.ColorIndex=6
               Elseif cells(ligne14)=200 then
                 cells(ligne,4).Interior.ColorIndex=3
            End if
        Next
     
    End sub
    Je ne sais pas si c'est correct ?
    Par contre je n'arrive pas a integrer le fait de savoir si la facture n'est pas payée , pouvez vous me donnez juste un petit indice ?

    Merci

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu testes la cellule de la colonne 5 (E). Avec ton code, ça donne ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub macro()
    Dim ligne As Integer
       For ligne = 2 To 7
          If Cells(ligne, 5) <> "Payée" And Cells(ligne, 4) >= 200 Then
              Cells(ligne, 4).Interior.ColorIndex = 3
            ElseIf Cells(ligne, 5) <> "Payée" And Cells(ligne, 4) < 200 Then
              Cells(ligne, 4).Interior.ColorIndex = 6
          End If
       Next
    End Sub
    Pendant que tu es là, jète un oeil là http://www.developpez.net/forums/sho...d.php?t=553797, tu as une explication qui devrais aussi t'intéresser pour l'avenir

    J'ai corrigé ta boucle en la faisant débuter à la ligne 2 qui contient ton en-tête, sinon elle répond aux conditions [Cells(ligne, 5) <> "Payée" And Cells(ligne, 4) < 200]
    A+

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    Super merci beaucoup j'ai compris ! ^^

    J'ai une dernière petite question.
    Desormais je dois ecrire une fonction qui calcule le nombre de factures dont le montant est strictement supérieur à 200 et on me demande "comment mettre le resultat dans la cellule D10."

    Mais je ne sais pas trop quoi mettre en paramètre dans ma fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function Facture( ...?)
    Facture = 0
       For ligne = 2 To 7
          If Cells(ligne, 4) > 200 Then
              Facture = Facture + 1
            Else
              Facture = 0
          End if 
       Next
    End function

  6. #6
    Membre éclairé

    Inscrit en
    Janvier 2005
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 532
    Par défaut
    Salut,
    pourquoi vous n'ajoutez pas au Macro de ouskel'n'or une petite ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cells(10,4).value=cells(10,4).value+1
    cette cellule va contenir à la fin le nombre de facture >200
    Bonne chance.
    Merci.

Discussions similaires

  1. [VBA-Excel,VB6,Fichier texte]enregistrer un classeur excel..
    Par Tarul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 13h09
  2. [vba-excel] Le temps de fermeture trop court ?
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 10h03
  3. [VBA-Excel]
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2005, 10h17
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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