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 :

Reporting mensuel sur tableau fixe


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Par défaut Reporting mensuel sur tableau fixe
    Bonjour à tous,

    J'ai un tableau 12 lignes (pour les mois) et 4 colonnes (pour les articles), je fais tourner une macro sur ce tableau.

    Ma macro va chercher des valeurs de 4 articles dans un tableau croisé dynamique, cela me donne le total vente du début de l'année au mois de mise à jour.
    Elle calcule ensuite l'écart entre la somme des valeurs du tableau (somme des mois passés) et la valeur du total vente, elle inscrit cet écart au dessus de chaque cellule du total général et en dessous des du total tableau.

    Cet écart je dois l'incrémenter dans le tableau et ce pour les 4 produits et ce mois par mois.
    Le point sur lequel je butte est suivant :

    J'arrive à réupérer la valeur du premier écart, à l'insérer dans le tableau sous la dernière valeur remplie de ma colonne MAIS je suis incapable de refaire la même opération avec les 3 colonnes suivantes.

    Auriez-vous une piste de solution parceque là c'est moi qui reboucle sur moi même à l'infini
    Merci de toute réponse ^^

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Août 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 162
    Par défaut
    Bonjour,

    Peux tu nous partager ton code s'il te plait ?
    Il peut y avoir pas mal de code qui font ce que tu souhaites.
    Ca peut être un For next ou for each next ou do until ou d'autres choses encore.
    En attendant d'avoir ton code, je te conseille de lire ceci : http://silkyroad.developpez.com/vba/boucles/ C'est un article très bien fait par SkilyRoad

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Par défaut
    Merci de l'intérêt

    Voici où j'en suis :

    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
    Public Sub NAT3() 'remplissage du tableau de suivi zinc NAT
    
    Set CelluleDepart = ActiveSheet.Cells(16, 2)    'Céllule de départ
    Set Tab1 = Range("B3:I13")                      'définir le tableau
    Set Net = Range("B15:I16")
    Set z1 = Range("B15:I15")
    
    
    Net.ClearContents
    
    ' --------------REMPLISSAGE DU TABLEAU COLONNE Tonnes ----------------
       
    CelluleDepart.FormulaR1C1 = _
            "=GETPIVOTDATA(""Somme de POIDS"",'Tableaux croisés'!R1C6,""ZINC"",""NAT"")/1000"  'aller chercher la valeur Poids
    CelluleDepart.Offset(0, 1).FormulaR1C1 = _
            "=GETPIVOTDATA(""Somme de POIDS"",'Tableaux croisés'!R1C6,""ZINC"",""nat1"")/1000"
    CelluleDepart.Offset(0, 2).FormulaR1C1 = _
            "=GETPIVOTDATA(""Somme de POIDS"",'Tableaux croisés'!R1C6,""ZINC"",""nat3"")/1000"
    CelluleDepart.Offset(0, 3).FormulaR1C1 = _
            "=GETPIVOTDATA(""Somme de POIDS"",'Tableaux croisés'!R1C6,""ZINC"",""nat4"")/1000"
    
    
    
    For Each i In z1
        i.FormulaR1C1 = "=R[1]C-R[-1]C"                                                                     'Calculer la valeur écart
            Next i
            
    If CelluleDepart.Offset(-1, 0) > "0" Then                                                                 'si la cellule intermédiaire >0 alors
            Tab1.End(xlDown).Offset(1, 0) = CelluleDepart.Offset(-1, 0).Value                   ' Intégrer la valeur de l'intermédiaire dans le tableau
                Else
                    Tab1.End(xlDown).Offset(1, 0) = "0"
                    End IfEnd Sub
    C'est en effet la boucle (dans la zone rouge) que je n'arrive pas à mettre en place.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Août 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 162
    Par défaut
    Je te conseille cette FAQ pour ce qui est des formules : http://excel.developpez.com/faq/?page=Formules, tu verras que tu peux écrire " .FormulaLocal= "=Somme(A1:B2)" "par exemple.

    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
    Public Sub NAT3() 'remplissage du tableau de suivi zinc NAT
    Set CelluleDepart = ActiveSheet.Cells(16, 2) 'Céllule de départ
    Set Tab1 = Range("B3:I13") 'définir le tableau
    Set Net = Range("B15:I16")
    Set z1 = Range("B15:I15")
    Net.ClearContents
    ' --------------REMPLISSAGE DU TABLEAU COLONNE Tonnes ----------------
    CelluleDepart.FormulaR1C1 = "=GETPIVOTDATA(""Somme de POIDS"",'Tableaux croisés'!R1C6,""ZINC"",""NAT"")/1000" 'aller chercher la valeur Poids
    CelluleDepart.Offset(0, 1).FormulaR1C1 = "=GETPIVOTDATA(""Somme de POIDS"",'Tableaux croisés'!R1C6,""ZINC"",""nat1"")/1000"
    CelluleDepart.Offset(0, 2).FormulaR1C1 = "=GETPIVOTDATA(""Somme de POIDS"",'Tableaux croisés'!R1C6,""ZINC"",""nat3"")/1000"
    CelluleDepart.Offset(0, 3).FormulaR1C1 = "=GETPIVOTDATA(""Somme de POIDS"",'Tableaux croisés'!R1C6,""ZINC"",""nat4"")/1000"
     
    For Each i In z1 'Tu n'as pas défini "i" avant de l'utiliser ! apparement c'est une cellule ?
    i.FormulaR1C1 = "=R[1]C-R[-1]C" 'Calculer la valeur écart
    Next i
     
    If CelluleDepart.Offset(-1, 0) > "0" Then 'si la cellule intermédiaire >0 alors
    Tab1.End(xlDown).Offset(1, 0) = CelluleDepart.Offset(-1, 0).Value ' Intégrer la valeur de l'intermédiaire dans le tableau
    Else
    Tab1.End(xlDown).Offset(1, 0) = "0"
    End IfEnd Sub
    Pour être honnête avec toi je ne saurais pas t'aider, il va falloir attendre les experts en VBA

  5. #5
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Par défaut
    Merci pour ton aide,
    le message a été repris (j'avais pas intégré les balises )
    C'est la partie basse de la procédure qui me bloque , à partir de "If CelluleDepart ....."

    Je vais tenter de voir ton lien

    A bientôt

Discussions similaires

  1. pointeur sur tableau de taille fixe
    Par stracoma dans le forum C++
    Réponses: 5
    Dernier message: 05/03/2015, 14h54
  2. loop sur tableau associatif
    Par Plawi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/02/2005, 11h29
  3. Réponses: 2
    Dernier message: 26/07/2004, 18h08
  4. Réponses: 3
    Dernier message: 26/07/2004, 12h03
  5. Réponses: 25
    Dernier message: 16/07/2003, 20h41

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