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 :

Reporter des chiffres d'une cellule à une autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut Reporter des chiffres d'une cellule à une autre
    Bonjour à tous,

    Sur un onglet, j'ai un tableau. On peut y mettre à la verticale le choix 1, 2 ou 3. J'ai créé un tableau à part qui permet de reporter le nbre de fois où le 1 a été choisi, le 2, ainsi que le 3. Mais comment peut-il calculer automatiquement ces sommes (combien de fois le 1...) pour les insérer dans la bonne case?

    Exemple: sur un même onglet ,nommé "anomalies", D4 contient le chiffre 1, D5 contient le chiffre 1, D6 le chiffre 2, D7 le chiffre 3.
    En B10, j'aimerai qu'apparaissent le nbre de fois où "1" a été sélectionné, en B11, le nbre de fois où "2" a été sélectionné et en B12, le nbre de fois où "3" a été sélectionné.

    Merci à vous

    Bag

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Bonjour Bagheria85,

    Veux-tu absolument faire cela en VBA ? La fonction Excel NB.SI fonctionne très bien sinon.

    Si tu veux absolument utiliser le VBA, une simple boucle sur toute ta colonne doit faire l'affaire :

    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
    Dim i as Long
    Dim NbDeUn as Long
    Dim NbDeDeux as Long
    Dim NbDeTrois as Long
     
    NbDeUn = 0
    NbDeDeux = 0
    NbDeTrois = 0
     
    For i = 1 to Sheets(1).Rows.Count
        Select Case Range("D" & i)
            Case 1
                NbDeUn = NbDeUn + 1
            Case 2
                NbDeDeux = NbDeDeux + 1
            Case 3
                NbDeDeux = NbDeDeux + 1
        End Select
    Next i
    Range("B10") = NbDeUn
    Range("B11") = NbDeDeux
    Range("B12") = NbDeTrois
    Tu peux aussi utiliser un tableau : Tab_Compteur(1 to 3) as Long :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim i as Long
    Dim Tab_Compteur(1 to 3) as Long
     
    For i = 1 to 3
        Tab_Compteur(i) = 0
    Next i
     
    For i = 1 to Sheets(1).Rows.Count
        Tab_Compteur(Range("D" & i)) = Tab_Compteur(Range("D" & i)) + 1
    Next i
     
    For i = 1 to 3
        Range("B" & 9+i) = Tab_Compteur(i)
    Next i
    Ca te donne quelque chose de potable ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 133
    Par défaut
    Je suis plutot débutant en matière d'excel et je n'ai pas pensé à la fonction NB.SI C'est largement plus pratique. Tu m'as donné une bonne idée. Merci donc à toi et bon courage!

    Bag

Discussions similaires

  1. [XL-2010] Reporte la valeur d'une cellule d'autre fichier Excel
    Par py86acces dans le forum Excel
    Réponses: 0
    Dernier message: 15/09/2014, 18h21
  2. Réponses: 2
    Dernier message: 09/04/2014, 11h26
  3. Réponses: 2
    Dernier message: 20/12/2013, 14h13
  4. Réponses: 3
    Dernier message: 09/10/2009, 18h05

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