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 :

Exercice macro suite et fin


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Exercice macro suite et fin
    Désolé de faire un deuxième sujet mais il n'y a plus de réponse sur le premier... :/

    Voilà où j'en suis :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Sub prim()
     
    Dim nummois As Single
    Dim CA As Single
    Dim taux As Single
    Dim prime As Single
    prime = CA * taux
     
    Range("a1") = "MOIS"
    Range("b1") = "CHIFFRE D'AFFAIRE"
    Range("c1") = "TAUX"
    Range("d1") = "PRIME GLOBALE"
    Columns("a:d").ColumnWidth = 20
     
    nummois = Application.InputBox("Mois de l'année (ex: janvier = 01)", Type:=1)
     
    If nummois = 1 Then
    Range("a2") = "JANVIER"
    ElseIf nummois = 2 Then
    Range("a2") = "FEVRIER"
    ElseIf nummois = 3 Then
    Range("a2") = "MARS"
    ElseIf nummois = 4 Then
    Range("a2") = "AVRIL"
    ElseIf nummois = 5 Then
    Range("a2") = "MAI"
    ElseIf nummois = 6 Then
    Range("a2") = "JUIN"
    ElseIf nummois = 7 Then
    Range("a2") = "JUILLET"
    ElseIf nummois = 8 Then
    Range("a2") = "AOUT"
    ElseIf nummois = 9 Then
    Range("a2") = "SEPTEMBRE"
    ElseIf nummois = 10 Then
    Range("a2") = "OCTOBRE"
    ElseIf nummois = 11 Then
    Range("a2") = "NOVEMBRE"
    ElseIf nummois = 12 Then
    Range("a2") = "DECEMBRE"
     
    Else: nummois = Application.InputBox("Mois de l'année (ex: janvier = 01)", Type:=1)
     
    End If
     
    CA = Application.InputBox("Saisir votre chiffre d'affaires :", Type:=1)
     
    If CA < 10000 Then
    Range("b2") = CA & taux = 10 / 100 & Range("c2") = taux & Range("d2") = prime
    ElseIf CA > 40000 Then
    Range("b2") = CA & taux = 21 / 100 & Range("c2") = taux & Range("d2") = prime
    Else: Range("b2") = CA & taux = 21 / 100 & Range("c2") = taux & Range("d2") = prime
     
    End If
     
     
    End Sub
    Alors premier problème j'aimerais que si le numéro du mois entré est incorrect, on revienne à l'input box précédente (comme je l'ai codé ça ouvre une nouvelle inputbox mais sans tout ce qui vient avant)
    Ensuite pour l'instant quand je rentre un chiffre d'affaire ca me sort simplement 'VRAI' en b2... j'avoue que je ne comprends pas pourquoi..
    Bon et je me doute qu'il y a moyen d'écrire un code bien moins bourrin, mais je fais avec mes moyens^^

    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    1/ voir "While"

    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Range("b2") = CA
    taux = 10 / 100
    Range("c2") = taux
    Range("d2") = prime
    A+

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    J'observe pour ma part que l'essentiel de la demande est le copié/collé d'un énoncé de devoir.
    Une éventuelle réponse/solution fera-t-elle l'objet (en vue de la note attribuée) d'une mention, dans la remise de la "copie", qu'il convient d'attribuer une note non à l'élève, mais à ce site ?
    C'était juste une question.... (mais peut-être également la seule réponse "acceptable")...
    Sur ce ... Je sors ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    @OBO29

    Merci de ton aide!

    Pour ce qui est While, est ce qu'il faut le mettre à la suite de If /Then ou les imbriquer ?

    Du genre soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If
    Then 
    EndIf
    Do 
    While
    soit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Do
    If
    Then
    EndIf
    While
    Parce que pour l'instant ca fait planter excel les différents essais que j'ai fait.


    @unparia

    Il s'agit d'un exercice que je dois faire dans le cadre de cours d'informatique à la fac
    Comme ce n'est pas du tout mon domaine et que je n'ai personne de calé autour de moi, je viens chercher de l'aide ici car je rame à comprendre.
    Je peux concevoir que ça te gène de m'aider, mais si un jour tu as besoin d'analyser une critique littéraire (qui sait :p) je serai ravi de te donner un coup de main ! ^^

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Ok donc jusqu'ici ça marche,
    il me reste un dernier problème :
    Comment recommencer les instructions à la ligne suivante de manière automatique.
    Quelque chose comme:
    For Each "instruction regarding this row"
    Next "same instruction on row+1"

    Bon mais écrit comme ca, évidemment ça marche pas^^
    Des suggestions ?

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Points : 178
    Points
    178
    Par défaut
    Salut,

    Utilise soit :

    Range("a" & Ligne)

    soit

    Cells(Ligne,1)
    où 1 est la Colonne "A"

    A+

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bon ! grâce à vous j'ai fini par me débrouiller
    Merci!

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

Discussions similaires

  1. macro recherchev/remplacer adaptée (suite et fin ?)
    Par max76 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/12/2012, 08h38
  2. declencher une macro suite a une modification d une feuille Excel
    Par chamus dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 11/01/2007, 09h50
  3. lancement macro suite à changement cellule
    Par dvguy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/12/2006, 08h45
  4. [VBA-E] Probleme macro suite à fichier partagé
    Par wice33 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/06/2006, 09h13
  5. [affichage d'une image] suite et fin
    Par mavina dans le forum 2D
    Réponses: 3
    Dernier message: 31/12/2005, 00h15

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