TCD pour du texte, est-ce possible

elo02

XLDnaute Nouveau
Bonjour le forum!

J'ai une question à propos des TCD!
Dans le fichier que je vous joins (mais qui n'est qu'une partie de celui de base), il y a une base de données qui s'actualise automatiquement.

J'ai réalisé un TCD où je récupérait des valeurs numériques.

Mais là, je voudrais faire une sorte de TCD qui me donnerait pour un couple (X;Y) (2 dernières colonnes) la valeur de COD-EMPLA-PREL-RESERV (3ème colonne).

Ce "TCD" me permettrai ensuite de dire SI (la valeur pour X=x01 et Y=yB est différente de R alors...)

J'ai essayé en faisant une requête mais ça ne correspond pas à ce que je cherche. En effet, pour appeler les valeurs de COD-EMPLA-PREL-RESERV , je dois donner le nom de la cellule à un instant donné. Or tous les couples (X;Y) n'existent pas forcément après chaque auctualisation.

Existe-t-il donc une sorte de TCD pour récupérer des données texte?

Merci d'avance!

Elo02
 

Pièces jointes

  • EMPLA1A3.xls
    21.5 KB · Affichages: 71

elo02

XLDnaute Nouveau
Re : TCD pour du texte, est-ce possible

Bonjour tout le monde!
Je peux vous dire que je suis épatée parce que vous avez réussi à faire!
C'est génial! Je vais enfin pouvoir rendre mon fichier fini au patron! Il reste juste quelques graphiques croisés dynamiques à faire...
Je vous aurais bien payé le champagne!
Merci encore!
elo02
 

elo02

XLDnaute Nouveau
Re : TCD pour du texte, est-ce possible

Voilà que j'ai un nouveau problème!

J'ai utilisé la formule sur 68*6 cellules (soit 408) et tout se passe bien.

Seulement, tout doit se recalculer lorsque j'appelle une macro (qui change la liste de départ (que vous appeliez BD dans vos fichiers).
Ca se recalcule bien, mais le problème c'est que ça met 2min (voire un peu plus).

Est-ce qu'il y a une solution pour que ce temps de calcul diminue?

Encore merci!

elo02
 

elo02

XLDnaute Nouveau
Re : TCD pour du texte, est-ce possible

Là, je ne peux pas, parce que Excel a planté, et qu'il essaye de recharger mon fichier! ça fait plus d'une demi-heure! Mais je vois que ça progresse!

Je pense que ça vient de plusieurs problèmes.

A l'aide de ma macro principale, j'ouvre une requête query et je l'insère dans une de mes feuilles. C'est ce qui me donne la base de données que vous appeliez BD.
Mais le problème, c'est qu'à chaque fois que j'exécute cette macro, j'ai une liste DonnéesExternes qui se rajoute parmi mes zones de liste déjà définies.
Une fois j'ai voulu ouvrir mon fichier et ça m'a dit qu'il y avait trop de DonnéesExternes et je n'ai pas pu actualiser comme je le voulais.
De plus, à chaque fois que j'ouvre mon fichier excel, et ben ça charge ces données externes et donc ça ralonge mon temps de chargement de fichier.

Ensuite, je pense que le calcul de la formule INDEX EQUIV prend beaucoup de temps.
En effet, j'ai un autre fichier, qusi identique sauf que je n'ai pas besoin de récupérer les R ou P, donc pas besoin de cette formule, et ça met 10secondes à charger!

voilà...

Elo
 

elo02

XLDnaute Nouveau
Re : TCD pour du texte, est-ce possible

Voilà (enfin) ma macro!


'******************************************************************************************'
'Macro qui affiche la liste des références de l'allée, en allant executer les requetes .dqy'
'******************************************************************************************'

Sub ListeA1Allee()

Dim Requete As String
Requete = "FINDER;T:\ELG\A1-A3\A1" & Range("Allée_A1") & ".dqy"
Range("B7") = "Allée " & Range("Allée_A1")
Range("A14:h16000") = ""
Range("Titre_Liste") = "Liste complète"

With ActiveSheet.QueryTables.Add(Connection:= _
Requete, Destination:=Range("deblist"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInPlace
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Worksheets("TCD").PivotTables("TCD1").RefreshTable
Worksheets("TCD").PivotTables("TCD2").RefreshTable
Worksheets("TCD").PivotTables("TCD3").RefreshTable
Worksheets("TCD").PivotTables("TCD4").RefreshTable
Worksheets("TCD").PivotTables("TCD5").RefreshTable

'Appel des macros de mise en couleur (en couleur c'est plus beau)
Call plan_fixe(Target)
Call libres(Target)
Call couleur_freq(Target)
Call couleur_ecart(Target)
Call couleur_casiers_a_verifier(Target)

End Sub
 

Dan

XLDnaute Barbatruc
Re : TCD pour du texte, est-ce possible

Bonsoir,

En fonction de ton dernier message et de ta macro, je ne saisis pas bien ce qu'elle fait.
Là tu récupères des données puis tu actualises des TCD et ensuite tu fais appel à 4 autres macros. Ces macros mettent de la couleur. Essaie en les désactivant pour voir.

Une broutille pour essayer d'améliorer la vitesse. Ajoute ces instructions dans ta macro :
- Après DIM Requete .... : Application.ScreenUpdating = False
- Avant END SUB : Application.ScreenUpdating = True

A te lire
 

elo02

XLDnaute Nouveau
Re : TCD pour du texte, est-ce possible

Bonjour!

Je reviens motivée et prête à en découdre avec mon fichier!

Je viens d'essayer ton code, Dan! mais ça n'a rien changé. Le problème ce n'est pas l'affichage des feuilles...
C'est toujours le Recalcul qui est long, et je pense que c'est la formule qui est en cause (puisque comme je l'explique plus haut, mon autre fichier quasi identique se recalcule en 10 s là où il faut 15 min pour celui-ci, et je n'exagère pas!)
Existe-t-il une solution pour diminuer le temps de calcul d'une formule?
Merci,
Elo
 

Dan

XLDnaute Barbatruc
Re : TCD pour du texte, est-ce possible

Bonjour elo2,

Peut être le pb vient-il du recalcul pendant que ta macro est exécutée.
A titre de test, essaie en désactivant l'option "calcul automatique" (menu/option/Calcul), puis exécute ta macro et réactualise ta feuille en recochant l'option "calcul automatique".

Un moyen est aussi de remplacer ta formule par un nom que tu attribues à la formule. Ensuite dans chaque cellule, tu remplaces ta formule par ce nom.
Mais à lire les délais que tu donnes pour ce recalcul, je ne pense pas que tu vas gagner des minutes. Mais ce serait déjà cela de gagné.

Un moyen plus rapide serait d'effectuer le calcul par activation d'une macro mais est-ce possible pour toi ?
 

Monique

Nous a quitté
Repose en paix
Re : TCD pour du texte, est-ce possible

Bonjour,


J'ai pris le fichier posté le 9 à 18:08

En colonne L de la feuille "Bd", tu tapes :
=J2&K2
Tu lui donnes un nom ("LesXY" par exemple)

Dans le tableau, à la place de la formule
=SI(ESTNA(EQUIV($B2&C$1;LesX&LesY;0));"";INDEX(CodEmpla;EQUIV($B2&C$1;LesX&LesY;0)))
tu mets :
=SI(ESTNA(EQUIV($B2&C$1;LesXY;0));"";INDEX(CodEmpla;EQUIV($B2&C$1;LesXY;0)))
Cette formule n'est à valider que par "Entrée"

Le poids du fichier diminue déjà.

Ensuite, tu donnes un nom à cette formule
Tu en fais autant (donner un nom aux formules) en ligne 1 et en colonne B
Une fois nommées, ces formules ne sont plus à valider par ctrl, maj et entrée
mais par "Entrée" simplement

Le fichier joint a perdu plus de 38% de son poids
La vitesse de recalcul est, en principe, améliorée
(je n'ai pas fait d'essais mais ça marche à tous les coups)
 

Pièces jointes

  • TCDFlou-6.zip
    8.7 KB · Affichages: 14
Dernière édition:

elo02

XLDnaute Nouveau
Re : TCD pour du texte, est-ce possible

J'ai essayé sans mettre de nom aux formules et ça marche trop trop bien!!!!
ça met plus que 15s à recalculer tout!
C'est génial!
Je ne sais pas comment vous remercier tous!

Enfin, vous me verrez p-ê encore sur le forum!
Et j'ai l'espoir qu'un jour je serai un peu moins nulle sur excel et que je pourrais aider quelqu'un d'autre!

Encore merci!

++

Elo
 

Statistiques des forums

Discussions
312 836
Messages
2 092 650
Membres
105 478
dernier inscrit
tim51