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 :

Parcours d'un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1
    Par défaut Parcours d'un tableau
    Bonjour,

    J'ai un tableau et je veux que mon code parcourt ce tableau tant que les valeurs des cellules de la colonne 1 sont égales et dès qu'elles sont différentes j'aimerais qu'il s'arrête et réalise une somme des valeurs qui sont au niveau de ma deuxième colonne. Ensuite quand il a sommé, il reprend la ou il s'est arrêté et fait pareil pour les cellules suivantes identiques de la colonne1
    Je sais que je peux faire une boucle do while mais mon problème provient de la sélection des cellules à sommer par rapport à ma première colonne.

    Si je ne suis pas claire et je crois que je ne le suis pas, dites moi.
    J'ai un rapport à rendre et je bloque la dessus

    Merci encore pour votre aide

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 126
    Par défaut
    Salut
    Essai avec ceci
    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
    Sub tipouciais()
    Dim CelF As Range
    Dim ValueCel As Long 'mettre As Double si il y a des nombres a virgule
    Dim NbCel As Integer
     
    NbCel = 0
    ValueCel = Range("A2") 'je suppose ici que les données commence a la ligne 2, la ligne 1 contenant les entetes
     
    For Each CelF In Range("A2", Cells(Rows.Count, "A").End(xlUp).Offset(1, 0))
        If (ValueCel <> CelF) Then
            CelF.Offset(-1, 1).Value = NbCel * CelF.Offset(-1, 0)
            NbCel = 1
            ValueCel = CelF
        Else
            NbCel = NbCel + 1
        End If
    Next
     
    End Sub
    Par contre tu devrais poser ce genre de question directement sur le forum VBA Excel, tu aura plus rapidement une réponse je pense.
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour à tous, bonjour à QWAZERTY

    Le pb n'est pas posé avec une grande précision, mais je crois comprendre que les valeurs à comparer sont en colonne A et les valeurs à additionner en colonne B.
    Si c'est le cas, QWAZERTY, la multiplication de convient pas.
    EN fait on ne sait pas ce qu'il y a en colonne 1 (j'ai postulé qu'il s'agit de texte), en colonne 2 cela ne peut être que des nombres (sans autre précision), et on ne sait pas où il faut écrire la somme, j'ai supposé en colonne 3 sur la dernière ligne de chaque groupement.

    Avec ces hypthèses, cela me donne cela
    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
    Sub tipouciais()
    Dim sh As Excel.Worksheet, CelF As Range
    Dim ValueCel As String 'mettre single ou double s'il s'agit de nombres
    Dim dblSomme As Double
     
    dblSomme = 0
    Set sh = ThisWorkbook.Worksheets("Feuil1")
    ValueCel = Range("A2") 'je suppose ici que les données commence a la ligne 2, la ligne 1 contenant les entetes
     
    For Each CelF In sh.Range("A2:A" & sh.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1)
        If (ValueCel <> CelF) Then
            CelF.Offset(-1, 2).Value = dblSomme
            ValueCel = CelF
            dblSomme = CelF.Offset(0, 1)
        Else
            dblSomme = dblSomme + CelF.Offset(0, 1)
        End If
    Next CelF
     
    Set sh = Nothing
    End Sub
    Cordialement,

    PGZ

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour,
    les sous totaux sont fait pour ça (données triés au préalable)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    Dim LastLig As Long
    LastLig = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A1:B" & LastLig).Subtotal GroupBy:=1, Function:=xlSum, _
        TotalList:=Array(2), Replace:=True, SummaryBelowData:=True
    End Sub

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 126
    Par défaut
    Salut a tous
    Ah oui, en effet pgz, tu as tout a fait raison, le problème était pourtant énoncé clairement et je suis clairement passé a coté ^^.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [Tableaux] Parcours d'un tableau
    Par wormseric dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2006, 13h53
  2. [MySQL] Parcours d'un tableau et suppression des entrées
    Par padoberg dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/07/2006, 13h41
  3. probleme de parcours d'un tableau
    Par rodriguez_du35 dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2006, 09h16
  4. parcours d un tableau de l interface graphique
    Par natasha84 dans le forum MFC
    Réponses: 7
    Dernier message: 26/05/2006, 23h29
  5. Parcour d un tableau dynamique
    Par harris_macken dans le forum Débuter
    Réponses: 12
    Dernier message: 24/05/2005, 22h23

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