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 :

parcourir un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut parcourir un tableau
    Bonjour,

    J'ai le code suivant :
    Ou je cree un tableau qui me recherche dans une sheet puis stocke des champs type ( MOIS x - TOTAL)
    extrait tableau : mois01 - total , mois02 - total , mois03 - total , mois04 - total , mois05 - total , mois06 - total
    je fais demander à l'utilisateur " le mois de référence" (un mois choisit arbitrairement)
    et c'est la ou je bloque, je voudrais récréer un tableau ou autre solution proposée qui parcoure ce tableau (j) en me trouvant le mois de référence ((ex = 05) en sachant que le champ se nomme mois05 - total) et les mois précedents qui sont contenus dans le tableau (si c'est 05 , j'aimerais avoir 04,03,02,....) , le mois 06 ne m'interesse pas.
    j'espere avoir été assez clair
    n'hésitez pas si vous avez des questions
    merci d'avance de votre aide


    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
    displaystring = "Entrez le mois de référence"
    nbdays = InputBox(displaystring)
     
    Set wrksheet = ActiveWorkbook.Worksheets.Add
    wrksheet.Name = "data"
     
    Dim Tableau()
     
    i = 1
    j = 0
     
    For Each Cellule In Rows(8).Cells
     
    If InStr(UCase(ActiveWorkbook.Sheets("Pivot Solutions").Cells(8, i).Value), "TOTAL") Then
    ReDim Preserve Tableau(j)
     
    Tableau(j) = i
     
    j = j + 1
     
    End If
     
    i = i + 1
    Next

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    Bonsoir, je me permets de mettre ton code entre les balises parceque là j'arrive pas à lire.
    Il manquait quelques déclarations
    Pour la boucle j'ai un doute je vais voir..
    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
    Dim displaystring As String
    Dim wrksheet As Worksheet
    Dim Tableau()
    Dim i%, j%
    ' Dim Cellule ???
    
    displaystring = "Entrez le mois de référence"
    Set wrksheet = ActiveWorkbook.Worksheets.Add
    wrksheet.Name = "data"
    
    nbdays = InputBox(displaystring)
    
    i = 1
    j = 0
    
    For Each Cellule In Rows(8).Cells
          If InStr(UCase(ActiveWorkbook.Sheets("Pivot Solutions").Cells(8, i).Value), "TOTAL") Then
                 ReDim Preserve Tableau(j)
                 Tableau(j) = i
                 j = j + 1
          End If
          i = i + 1
    Next i

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    merci pour ta réponse
    en fait je voudrais surtout parcourir mon tableau qui est composé de tous les mois (Janv , Fev, Mars, ...., )
    Si tu l'utilisateur choisit Avril comme mois
    j'aimerais reconstruire le tableau ou en faire un nouveau qui me stocke seulement les mois suivants
    Janv , Fev, Mars, Avril (donc les mois precedents avril)
    et ça je n'arrive pas à le faire
    merci pour ton aide

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    Je ne comprends pas exactement ce que tu veux mais j’ai fait une simulation avec une feuille « pivot solutions »

    De « a2 » à « a13 » j’ai entré le mois (janvier, février….)

    Et j’ai crée ce code :
    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 TEST()
    Dim displaystring As String, nbdays As String
    Dim wrksheet As Worksheet
    Dim i%
    Dim cellule As Range, lg As Integer
     
    displaystring = "Entrez le mois de référence"
    Set wrksheet = ActiveWorkbook.Worksheets.Add
    wrksheet.Name = "data"
     
    nbdays = InputBox(displaystring)
     
    Set cellule = ActiveWorkbook.Sheets("Pivot Solutions").Range("a2:a13")
    lg = cellule.Find(nbdays).Row
     
    For i = 2 To lg
     
          ActiveWorkbook.Sheets("data").Cells(i, 1) = Sheets("pivot solutions").Range("a" & i)
          ActiveWorkbook.Sheets("data").Cells(i, 2) = Sheets("pivot solutions").Range("b" & i)
    Next i
    End Sub
    Que j’ai imputé à un bouton de commande

    si tutiens à ce que la colonne "a" soit MOIS01, MOIS02...

    change la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lg = cellule.Find(nbdays).Row
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lg = cellule.Find(Left(nbdays, 2)).Row

    Regardes ce que donne le résultat

    Attention, tu aura une erreur si la feuille »data » est déjà créée mais c’est un début si c’est ce que tu cherches
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Ton exemple est très intéréssant mais comment ça se passe, pour un tableau, tu peux voir mon premier post ou j'ai un tableau(j) qui contient des valeurs tels :
    Total 03/2008 Total 04/2008 Total 05/2008 Total 06/2008 Total 07/2008 etc
    et moi ce que je voudrais, c'est si le user tape : 06 (correspond à Total 06/2008)
    qu'il me garde dans le tableau seulement les 3 derniers mois donc Total 05... , Total 04... , Total 03...
    merci encore

    je tiens juste à préciser une chose , quand je dis tableau, je ne parle pas d'un tableau sur une feuille excel
    mais avec la fonction tableau () qui stocke les données

Discussions similaires

  1. Parcourir un tableau?
    Par kanzarih dans le forum Oracle
    Réponses: 2
    Dernier message: 19/01/2006, 19h45
  2. Meilleure Méthode pour parcourir un tableau
    Par KPitN dans le forum MFC
    Réponses: 7
    Dernier message: 24/02/2005, 16h19
  3. Comment parcourir un tableau
    Par petitsims dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/01/2005, 14h33
  4. parcourir un tableau aléatoirement
    Par khayyam90 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 01/12/2004, 13h44
  5. [langage] Parcourir un tableau
    Par Jibees dans le forum Langage
    Réponses: 13
    Dernier message: 22/04/2003, 14h18

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