Tableau sous VB

Bonjour à toute et à tous,

Vu mon nouveau statut je ne peux plus dire je débute, mais que je suis un utilisateur occasionnel de VB !

Je souhaiterais réaliser un tableau automatisé sous VB.

Mon fichier est en pièce jointe

La feuille: data correspond à mes données qui pourront par la suite variées plus ou moins de niveau.

La feuille: promotion je l'utiliserais plus tard ^^.

La feuille: résultat bah c'est le résultat que je souhaite obtenir .

Donc d'apres data je voudrais obtenir resultat.

Nivsup -> Niv -> Sousniv

En gros il me faudrait le total vente à chaque fois pour chacun de ces groupes

Ces niveaux peuvent changer cad la il y a 3 niv demain il peut y en avoir 5 tout comme le nombre de mag...

Comment dois-je commencer et surtout par ou?

Je suis a dispo pour toute remarque

Merci de votre aide, passez une bonne journée

Alex

16macroforfun.zip (7.46 Ko)

Bonjour

Un exemple avec un TCD.

24macroforfun.zip (12.51 Ko)

Merci Lean!

J'avais effectivement réalisé cette solution cependant je souhaite tout de même realiser ce graphe à l'aide de VB! ET je ne suis pas sur que faire le TCD en VB soit la meileur solution d'un point de vue esthétique !


Finalement votre solution me semble tres correct je vais l'adapter en Vb je vous en tiens informé

Oups !

Bon courage...

Salut à tous donc j'ai bien avancé dans ma macro mais je me heurte à un soucis!

Je souhaite réaliser une formule et la faire fonctionner à l'ensemble de mes lignes de 4 à 61 ici

Le code est donc :

 Range("I3").FormulaR1C1 = "actuel"
    Range("I4").FormulaR1C1 = "=RC[-3]/RC[-4]"
    Range("I4").AutoFill Destination:=Range("I4:I61")
    Range("I4:I61").Style = "Percent"
    Range("I4:I61").NumberFormat = "0.00%"
 

Jusque la ok!

Mais maintenant je voudrais que c'est lignes puisse varier(4 à 205, 4 à 25, ...) sans intervenir et qu'il m'applique tout de même la formule je pensais utiliser un .CurrentRegion mais ca marche pas! Si vous avez des idées

Merci!

alex

Il faut récuperer les coordonées où excel devra s'arrêter les mettres dans une variable

Comment fait on pour recup ces coordonnées? Il faut que celles-ci s'adapte à mon TCD qui va bouger constament! Faire une plage, mais tjrs pareil je sais pas comment lui dire stop

Je suis pas sur d'avoir bien compris mais si vous essayez via VBA d'introduire une formule dans un TCD c'est peine perdu !

Sinon il y a

en guise d'exemple : Range("I4",Range("I4").end(xldown) qui permet de récuperer jusquà la dernière cellule non vide

Merci votre idée fonctionne:

    Range("I3").FormulaR1C1 = "actuel"
    Range("I4").FormulaR1C1 = "=RC[-3]/RC[-4]"
    Range("I4").AutoFill Destination:=Range("I4", Range("I4").End(xlDown))
    Range("I4:I61").Style = "Percent"
    Range("I4:I61").NumberFormat = "0.00%"[code]

Cependant la formule va etre appliqué de la ligne I4 à I1 048 576 ce qui pose pb par la suite pour remédier a ca je test un truc comme ca:

    [code]  Range(Range("a1").End(xlDown).Offset(1, 0), Range("h1048576")).Select
    Selection.Delete Shift:=xlUp

Mais ceci donne pas le résultat voulu

Merci de votre aide

Désolé mais je me suis mal exprimé et j'ai tronqué mon raisonnement.

Ce qu'il faut faire c'est compter (par exemple) le nombre de valeur que vous avez en colonne A.

Exemple : vous avez 36 lignes de remplies.

Ensuite avec cette indice de coordonné, vous autofillez votre formule jusqu'à la ligne 36

En terme VBA cela pourrai se transcrire comme ça :

Dim dl as long

dl = Sheets(1).Range("a" & rows.count).end(xlup).row

Dl va avoir la valeur de 36 (dernière ligne non vide).

Ensuite dans votre autofill vous précisez qu'il faut autofillez de la cellule I4 à la cellule I & dl (donc i36)

Bingo!! Merci Lean la derniere solution fut la bonne!

Merci encore de votre aide sur cette macro, mon objectif est rempli 8)!

L'étape suivante est maintenant la sécurisation des feuilles pour ne faire apparaitre que le résultat , pas gagné!

Je vais aller faire un tour sur le forum pour voir si le sujet a été abordé!

Bonne journée a tous!

Uh ?

Nouvelle modification que je n'arrive pas à mettre en place.

Je vous joins un fichier excel qui permet de mieux comprendre.

Je souhaite en faite automatiser le fait de descendre les valeurs dans la colonne jusqu'a celle du dessous et stopper une fois une valeur deja rentrer pour recommancer apres (voir fichier).

Tout ceci sous forme de macro!

Merci

Alex

17macroforfun.zip (10.48 Ko)
Sub Macro1()
Dim dl As Long
dl = Sheets(1).Range("c" & Rows.Count).End(xlUp).Row
Dim i As Integer
For i = 5 To dl
If Cells(i, 3) = "" Then
Cells(i, 3) = Left(Cells(i, 4), 1) & "00"
End If
Next
End Sub

Ca devrait marcher

Bonsoir,

Ton tableau ressemble beaucoup à une synthèse par TCD.

Me trompe-je

Rechercher des sujets similaires à "tableau"