VBA tableau et insertion de formule

Fermé
julief - 17 août 2010 à 11:45
bacus13 Messages postés 30 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 1 septembre 2010 - 17 août 2010 à 15:53
Bonjour,

je vais essayé d'expliquer au mieux ma situation pour que cela soit efficace
je dispose d un tableau de 300 données concernant des consommateurs
nom , type de canal utilisé pour contacter l'entr, date, motif de contact = a b c d
machin lettre Aout 1 0 0 0
truc mail Juillet 0 1 0 0

grace a une premiere macro j arrive a extraire les donnés concernant le mois souhaité sur une autre feuille, en dessous de ce premier tableau j'ai 3 autres tableaux ce sont les memes données que le premier tableau mais décomposé par canal (lettre mail tel)en, dessous de ces 4 tableaux de taille variante je voudais inséré une ligne de formule (principalement des sommes). Mais je suis bloqué d'une part dans mes formules et d'autre part dans l'insertion de ces lignes de calcul dont les coordonnées sont modifiées à achaque extraction.
Suis-je clair?
J'espere que vous pourrez m'aider et n'hésitez pas a poser des questions si vous n'avez pas tout capter
Merci d avance

A voir également:

5 réponses

bacus13 Messages postés 30 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 1 septembre 2010 8
17 août 2010 à 11:56
Qu'est ce que tu veux faire exactement ?

Si j'ai bien compris, à chaque fois que tu lances ta macro, elle doit utiliser la ligne qui est à la fin de l'ensemble de tes tableaux et y mettre une formule ?

Si c'est ça, utilise Rows("1048576").End(xlUp).row qui te renvoi la valeur de la dernière ligne utilisée.

Et il va falloir que tu en dises un peu plus sur les formules...
0
Alors en fait a chaque fois que je lance ma macro je dois avoir une ligne en dessous de chaque tableau qui contient les formules somme de ce qu'il y a au dessus.
1er probleme comment inséré une ligne en dessous de chaque tableau qui sont donc de taille variable
2eme pbl : comment luifaire comprendre que je veux qu'il me somme ce qu'il y a au dessus
0
bacus13 Messages postés 30 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 1 septembre 2010 8
17 août 2010 à 14:01
Si toutes les lignes de la colonne à sommer de chacun de tes tableaux sont forcement pleines,

Option Explicit

Sub somme()

Dim ligne As Integer
Dim taille_total As Integer
Dim n As Integer 'n permet de connaitre le nombre de ligne de ton tableau

taille_total = Rows("1048576").End(xlUp).Row + 1 '+1 pour avoir la ligne 
'après la dernière ligne non vide de ton tableau
n = 0

For ligne = 1 To taille_total 'met la première ligne de ton premier tableau 
'à la place de 1
    If Range("A" & ligne).Value <> Empty Then 'si tes tableaux on 
'des entetes, tu peux faire une autre vérification (par exemple 
'IsNumeric(Range("A" & ligne).Value) )
        n = n + 1 'on incremente 1 à chaque fois qu'il s'agit d'une cellule 
'à ajouter (non vide)
    Else:
        If n <> 0 Then 'sinon on vérifie que n n'est pas nulle (si il y a 
'plusieurs lignes vide entre tes tableaux)
            Range("A" & ligne).FormulaR1C1 = "=sum(R[-1]C:R[-" & n & "]C)" 
'on fait la somme de la ligne -n jusqu'à la ligne -1
            n = 0 'on remet n à 0 car il n'y à plus rien à ajouter
        End If
    End If
Next ligne

End Sub


Si tu veux mettre le résultat dans une autre colonne, tu mets C[..]

En esperant t'avoir aidé
0
Pour commencer merci pour la réponse rapide.
Mais d apres ce que j ai compris au code ca marcherai seulement si un tableau se trouve sur la feuille non ?
Je dispose de 4 tableaux sur la feuille et je veux une ligne de calcul pour chaque (histoire d etre relou jusqu au bout lol)
Désolé je suis novice
0
bacus13 Messages postés 30 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 1 septembre 2010 8
17 août 2010 à 15:35
Non ça fonctionne si tout tes tableaux sont les uns à la suite des autres et avec au moin une ligne entre chaque. Par contre il faut que les cellules à ajouter sont toutes dans la même colonne (pour tous les tableaux) sinon il faut modifier 2 3 trucs...

Rien de vaut un bon test, dis moi ce qui ne marche pas ensuite !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
j ai tester la macro elle marche merci encore
j'en reviens pas c'est exactement ce que je voulais
0
bacus13 Messages postés 30 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 1 septembre 2010 8
17 août 2010 à 15:53
y a pas de quoi ; )
0