Conversion formule excel en vba

Fermé
jon2050 Messages postés 5 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 6 novembre 2007 - 5 nov. 2007 à 22:57
jon2050 Messages postés 5 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 6 novembre 2007 - 6 nov. 2007 à 20:03
Bonjour,

Voici mon problème ;

J'ai plusieurs onglets et un onglet Base de données censé regrouper toutes les données.

Le probleme est que je souhaite que cette consolidation des données par colonne prennent en compte la 1er ligne de chaque colonne (on y affiche les mois chiffre entre 1 et 12).

Cette formule excel me permet de consolider les données selon la case du mois correspondant :


SI($F$1=DATE(2008;1;1);SOMME.SI(carburant!$C$1:$IU$300;1;carburant!C8:IU8);SI($F$1=DATE(2008;2;1);SOMME.SI(carburant!$C$1:$IU$300;2;carburant!C8:IU8) ...

J'ai continué cette formule jusqu'en Juillet mais je ne peux pas continuer faute de mémoire

Cette formule correspond à une seule ligne de la base de données et je pensais recopier la formule vers le bas ...


Si vous avez une macro qui remplace ...

jon2050@caramail.com
A voir également:

6 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
6 nov. 2007 à 09:28
bonjour

J'ai continué cette formule jusqu'en Juillet mais je ne peux pas continuer faute de mémoire

Ce n'est pas "faute de mémoire" mais tout simplement parce que sous Excel (avant 2007), tu ne peux pas empiler plus de 7 niveaux de fonctions.
Tu devrais rechercher avec les fonctions DECALER ou EQUIV pour trouver la colonne où tu veux consolider, mais ce n'est pas facile de savoir comment sont tes données.
0
jon2050 Messages postés 5 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 6 novembre 2007
6 nov. 2007 à 12:32
Bonjour,



En fait cette base de données sert à être transférée sur d’autres onglets.



Avant la formule, ce transfert de données fonctionne et est assez rapide et lorsque je met cette condition (cette formule)

Le transfert est RALENTI, TRES RALENTI et je ne comprends pas pourquoi (peut être que la liaison macro et formule n’est pas compatible ?)



Mon email : caro_pticoeur85@hotmail.fr





Je peux vous envoyer le fichier pour que vous jetiez un oeil
0
jon2050 Messages postés 5 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 6 novembre 2007
6 nov. 2007 à 18:41
J'espère que vous êtes là car je dois rendre ces travaux important pour demain.

L'idée général est que cette formule est transféré sur la base de données et Ensuite une macro répartit toutes ces données sur d'autres onglets selon les codes Unités.

Lorsque je lance ma macro avec ces formules contenu sur toutes ma base de données, il s'avère que c'est TRES LENT et je ne comprends pas pourquoi ça fait cela.

Une colonne de ma base de données correspond en COLONNE aux sommes des différentes colonnes sur un onglet

j'ai mis sur la premiere ligne de chaque colonne d'un onglet une référence mensuel (par mois).

La formule fonctionne : SI($F$1=DATE(2008;1;1);SOMME.SI(carburant!$C$1:$IU$300;1;carburant!C8:IU8);SI($F$1=DAT E(2008;2;1);SOMME.SI(carburant!$C$1:$IU$300;2;carburant!C8:IU8) ...

Cette formule est recopiée sur toute la colonne (150)

ça correspond à longlet carburant et reprend la ligne 8 et insere la somme en ligne 8 de ma base de donnée

J'ai dupliqué cette formule pour les 3 autres onglets sur 3 autres colonnes correspondant (4 colonnes E, F, G, H contenant les formules)

J'espere que j'ai été assez clair mais j'avoue ce n'est pas facile d'être explicite à l'écrit sur de la programmation
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
6 nov. 2007 à 19:05
bonjour

Pour accélérer ton traitement, il faudrait regarder, si c'est possible la fonction de calcul qui permet en le mettant à manuel d'éviter le temps de calcul :
Application.Calculation = xlManual
Application.Calculation = xlAutomatic

Puis aussi voir la mise à jour de l'écran :
Application.ScreenUpdating = False
Application.ScreenUpdating = True

0

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

Posez votre question
jon2050 Messages postés 5 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 6 novembre 2007
6 nov. 2007 à 19:30
ok je vais regarder de suite
0
jon2050 Messages postés 5 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 6 novembre 2007
6 nov. 2007 à 20:03
ca a l'air de marcher

je crois que ça me fait l'execution VBA automatiquement sans que cela soit progressif

J'espere ça va marcher au travail

le probleme c'est que le fichier est sur un réseau et que peut etre ça influe sur le fonctionnement enfin ça serait bizarre ça marche nickel ICI Merci je crois que c'est un début de résolution

Ce qui me manque c'est que la fonction me permet d'avoir que 7 niveaux ...

Peut etre jvais faire une autre base pour les 5 autres ou faire du 6 - 6
0