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 :

[VBA-E] plusieurs dim for next


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut [VBA-E] plusieurs dim for next
    Salut à tous, comment gère-t-on plusieurs Dim...for...next
    (Désolé ma touche "code" sur cette fenêtre ne fonctionne pas)
    Voilà mon prob, si vous suivez mon code j'ai un I mais pour la ligne "Position" plus bas il ne fonctionne pas avec I ( peut-être parcequ'il n'est pas définit en tant que integer ? ). Donc je voudrais lui définir le "A" en integer pour essayer, ma syntaxe générale ( avec les 2 next à la fin ) n'est visiblement pas bonne !!! .

    Merci 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
    25
    Sheets("Crois dyn").Select
    Dim I
    For I = 1 To 50
    Dim A As Integer
    For A = 1 To 50
     
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "'Chiffres ordre'!B1:AY177").CreatePivotTable TableDestination:= _
            "R1C" & (I * 4 - 3), TableName:="PivotTable" & (1 + I)
     
        With ActiveSheet.PivotTables("PivotTable" & 1 + I)
            .ColumnGrand = False
            .NullString = "0"
            .RowGrand = False
            .SmallGrid = False
     End With
    ActiveSheet.PivotTables("PivotTable" & 1 + I).AddFields RowFields:=Array(I)
     
        With ActiveSheet.PivotTables("PivotTable" & 1 + I).PivotFields(I)
            .Orientation = xlDataField
            .Caption = "C" & (I + 1)
            .Position = (A)
        End With
    Next
    Next

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    oups c'est vraiment pas clair ... en rajoutant ton FOR A... tu imbrique une seconde boucle dans ton ta 1° ... ce qui fais que tes lignes entre For A et Next A vont être exécuté 50x50 fois ... je ne pense pas que cela soit ton désir...

    si c'est seulement déclarer i en integer ... , rien ne t'en empêche change juste la ligne dim i ....

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut re
    salut Bbil, ok mais j'ai mis I as integer et donc cela donne ceci mais il me dit qu'il n'arrive pas à comprendre le I de la ligne position....... ma syntaxe ".postion = I " me semble juste ???

    ( désolé la touche code ne fonctionne pas )

    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
     Dim I As Integer
    For I = 1 To 50
     
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "'Chiffres ordre'!B1:AY177").CreatePivotTable TableDestination:= _
            "R1C" & (I * 4 - 3), TableName:="PivotTable" & (1 + I)
     
        With ActiveSheet.PivotTables("PivotTable" & 1 + I)
            .ColumnGrand = False
            .NullString = "0"
            .RowGrand = False
            .SmallGrid = False
     End With
    ActiveSheet.PivotTables("PivotTable" & 1 + I).AddFields RowFields:=Array(I)
        With ActiveSheet.PivotTables("PivotTable" & 1 + I).PivotFields(I)
            .Orientation = xlDataField
            .Caption = "C" & (I + 1)
            .Position = I
        End With

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut re
    merci pour la balise "code"....... j'espère que ça aidera pour résoudre mon prob......

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    as tu reardé dans l'aide en ligne l'utilisation de la propriété position .. est tu sur qu'elle sert bien à ce que tu veux en faire ( déjà que veux tu en faire..?)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut re
    j'ai cherché dans l'aide mais rien trouvé...

    ".postion = ..." vient quand j'enregistre une macro en faisant un crois dyn:
    j'ai le 1 en "rowfield" et de 1 à 50 en "data".... donc pour le 1 à 50 il dois me les mettre l'un en dessous de l'autre d'où .positon=1 pour le chiffre 1 ( puis postion 2 pour le 2 ....) pour me les mettre dans l'ordre l'un en-dessous de l'autre.

    je viens de modifier le code car il me manquait un dim pour ajouter tous les "pivotfields" pour chaque "rowfield"...

    et ça marche...........; YYYEEEEEEEESSSSSSSSSSSSS

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut syntaxe
    si ça peut vous aider pour vous voici la syntaxe que j'ai utilisée;;;;;;;;


    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
    Dim I As Integer
    For I = 1 To 50
     
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "'Chiffres ordre'!B1:AY177").CreatePivotTable TableDestination:= _
            "R1C" & (I * 4 - 3), TableName:="PivotTable" & (1 + I)
     
        With ActiveSheet.PivotTables("PivotTable" & 1 + I)
            .ColumnGrand = False
            .NullString = "0"
            .RowGrand = False
            .SmallGrid = False
     End With
    ActiveSheet.PivotTables("PivotTable" & 1 + I).AddFields RowFields:=Array(I)
     
         Dim A As Integer
         For A = 1 To 50
     
    With ActiveSheet.PivotTables("PivotTable" & 1 + I).PivotFields(A)
            .Orientation = xlDataField
            .Caption = "C " & (A + 1)
            .Position = A
        End With
     
        Next A
     
     ' cacher les blancs
        With ActiveSheet.PivotTables("PivotTable" & 1 + I).PivotFields(I)
             .PivotItems("(blank)").Visible = False
        End With
     
    Next I
    Application.CommandBars("PivotTable").Visible = False
        ActiveWindow.SmallScroll Down:=-3
     
    End Sub

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

Discussions similaires

  1. Excel vba : Erreur de compilation for sans next
    Par BENNASR dans le forum Excel
    Réponses: 2
    Dernier message: 26/11/2014, 10h05
  2. [AC-2007] ouvrir plusieurs états avec boucle FOR...NEXT
    Par sylv20 dans le forum IHM
    Réponses: 5
    Dernier message: 30/06/2011, 10h58
  3. Plusieurs boucles For next imbriquées
    Par athos7776 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/04/2011, 22h48
  4. Possibilités de plusieurs variables dans "For Next"
    Par Baldor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/06/2008, 15h04
  5. qbasic : pause avec FOR-NEXT
    Par clood200 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 08/08/2003, 16h51

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