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 :

VB itération de colonne de cellule


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2021
    Messages : 3
    Par défaut VB itération de colonne de cellule
    Bonsoir,
    Tout d'abord excusez-moi pour le niveau terrible que je dois avoir en programmation VBA...
    Je suis donc étudiant et confronté à un problème dans un de mes exercices et j'aimerais trouver une solution !

    l'énoncé :
    1.Ecrire un programme qui permet de saisir n notes comprises entre 0 et 20 (0<n≤10 est connu et fixé c’est à dire qu’on demande de saisir cette valeur à l’utilisateur).
    2. Ajouter au programme précédent le calcul de la moyenne arrondie à deux décimales des notes, le minimum, le maximum et le nombre d’occurrences du maximum.
    3. Ajouter au programme l’affichage des notes saisies sur la première colonne de la Feuille 1 ainsi que la moyenne arrondie a` deux décimales des notes, le minimum, le maximum et le nombre d’occurrences du maximum.
    4. On recommence l’exercice mais cette fois-ci on ne connaît pas d’avance le nombre n, le programme continue tant qu’une note incorrecte n’a pas été saisie.

    Je suis actuellement bloqué à la question 3 j'ai fais plusieurs essais mais je n'arrive pas à trouver la façon de formuler ma requête, je voudrais pouvoir sélectionner la plage que j'ai fais écrire au programme et comparer une à une les valeurs pour trouver la plus petite et la plus grande !

    Voila mon programme,( soyez tolérants svp il doit être brouillon) :
    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
     
    Sub ex8_1()
    Dim nbredenote, A, B, C, D, E, Moyennearrondie As Double
    Dim Cellule, Min, Max As Double
    Dim element As Variant
    C = 0
    A = 0
    B = 1
    D = 0
    E = 0
     
    nbredenote = InputBox("combien de note voulez-vous saisir")
    If nbredenote > 10 Or nbredenote < 0 Then
    nbredenote = InputBox("Erreur! combien de note voulez-vous saisir (comprises entre 0 et 10)")
    End If
        For A = 1 To nbredenote
            B = InputBox("veuillez saisir la note " & A)
            Feuil1.Cells(1, A) = B
            C = C + B
        Next
     
    For Each element In Worksheets("Sheet1").Range(1, 1)
        If A > Min Then
            Min = A
        End If
        Next
    MsgBox ("la note minimum est de " & A)
     
    For Each element In Range(1, 1)
        If A < Max Then
           Max = A
        End If
        Next
    MsgBox ("la note maximum est de " & A)
     
     
    Moyennearrondie = C / nbredenote
    Moyennearrondie = Round(Moyennearrondie, 2)
    MsgBox (Moyennearrondie)
     
    End Sub

    Merci d'avance !
    PS : Y a t il une différence entre VBA et VB ?
    La balise code ça tue

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 138
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 138
    Par défaut
    Bonsoir,
    Citation Envoyé par batbatbat Voir le message
    comparer une à une les valeurs pour trouver la plus petite et la plus grande !
    Cela devrait fonctionner sauf qu'il ne faut pas afficher A mais MIN ou MAX.

    Comme MIN ou MAX sont des fonctions VBA il est souhaitable de ne pas utiliser ces noms de variables car tu n'auras plus accès aux fonctions.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2021
    Messages : 3
    Par défaut
    Merci pour votre réponse,
    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
    Sub ex8_1()
    Dim nbredenote, A, B, C, D, E, Moyennearrondie As Double
    Dim Cellule, nbreMin, nbreMax As Double
    Dim element As Variant
    C = 0
    A = 0
    B = 1
    D = 0
    E = 0
     
    nbredenote = InputBox("combien de note voulez-vous saisir")
    If nbredenote > 10 Or nbredenote < 0 Then
    nbredenote = InputBox("Erreur! combien de note voulez-vous saisir (comprises entre 0 et 10)")
    End If
        For A = 1 To nbredenote
            B = InputBox("veuillez saisir la note " & A)
            Feuil1.Cells(1, A) = B
            C = C + B
        Next
     
    For Each element In Worksheets("Sheet1").Range(1, 1)
        If A > nbreMin Then
            nbreMin = A
        End If
        Next
    MsgBox ("la note minimum est de " & nbreMin)
     
    For Each element In Range(1, 1)
        If A < nbreMax Then
           nbreMax = A
        End If
        Next
    MsgBox ("la note maximum est de " & nbreMax)
     
     
    Moyennearrondie = C / nbredenote
    Moyennearrondie = Round(Moyennearrondie, 2)
    MsgBox (Moyennearrondie)


    Le programme me renvoie :

    Erreur d'exécution « 9 »:
    L'indice est en dehors des dimensions du tableau
    des qu'il arrive a la ligne du For each , une idée ?

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 138
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 138
    Par défaut
    Citation Envoyé par batbatbat Voir le message
    Erreur d'exécution « 9 »: L'indice est en dehors des dimensions du tableau
    Ta plage de notes n'est pas correctement définie.
    D'autre part il ne faut pas tester A mais element
    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
    Sub ex8_1()
    Dim nbredenote, A, B, C, D, E, Moyennearrondie As Double
    Dim Cellule, Min, Max As Double
    Dim element As Variant
    C = 0
    A = 0
    B = 1
    D = 0
    E = 0
     
    nbredenote = InputBox("combien de note voulez-vous saisir")
    If nbredenote > 10 Or nbredenote < 0 Then
    nbredenote = InputBox("Erreur! combien de note voulez-vous saisir (comprises entre 0 et 10)")
    End If
        For A = 1 To nbredenote
            B = InputBox("veuillez saisir la note " & A)
            Feuil1.Cells(1, A) = B
            C = C + B
        Next
    Min = 999
    For Each element In Feuil1.Cells(1, 1).Resize(1, nbredenote)
        If element < Min Then
            Min = element
        End If
        Next
    MsgBox ("la note minimum est de " & Min)
     
    For Each element In Feuil1.Cells(1, 1).Resize(1, nbredenote)
        If element > Max Then
           Max = element
        End If
        Next
    MsgBox ("la note maximum est de " & Max)
     
     
    Moyennearrondie = C / nbredenote
    Moyennearrondie = Round(Moyennearrondie, 2)
    MsgBox (Moyennearrondie)
     
    End Sub
    à toi de comprendre le principe du fonctionnement

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2021
    Messages : 3
    Par défaut
    Ok, je vais bosser ça de mon côté pour comprendre !
    En tout cas merci beaucoup de votre réactivité et gentillesse anasecu !

    Bien cordialement, take care.

Discussions similaires

  1. [XL-2007] Macro pour masquer les colonnes avec cellules vides
    Par Cirrus22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/12/2009, 19h50
  2. Pb pour insérer lignes, colonnes ou cellules..
    Par muriellelapuce dans le forum Excel
    Réponses: 3
    Dernier message: 09/03/2009, 21h35
  3. memoriser une colonne de cellule d'une feuille sur les autres feuilles
    Par iturria64 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2007, 01h33
  4. Comparer colonne avec cellule
    Par jaypaulojay dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/05/2007, 15h49
  5. Copie d'une colonne de cellules sur une autre feuille
    Par maxou59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2006, 10h06

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