Home – Le CFO masqué › Forums › VBA › charger des donné pwq en fonction d’un Critère
Tagged: Résolut/Critère ; vba
- This topic has 6 replies, 2 voices, and was last updated 2 years, 7 months ago by
deltacta.
-
AuthorPosts
-
18 September 2022 at 18 h 33 min #107227
deltacta
ParticipantBonjour
j’ai enregistrer un code qui définis ce que je voudrais .
dans ma cellule A1 je saisie un jours de la semaine: LUNDI ou MARDI ou MERCREDI ou JEUDI ou VENDREDI ou SAMEDI&LUNDI.
Lorsque je saisie un de ces choix il va me cherche les donner que j’ai déjà construis en amonts sur pwq.
Est-il possible que vous puissiez avec votre gentillesse, m’aidé à faire une condition (if; then; end if) pour ma cellule A1?
J’espère avoir été assez explicite.
Cordialement.
Sub testecharLundi()
Range(“A1”).Select
ActiveCell.FormulaR1C1 = “LUNDI”
Application.CutCopyMode = False
Application.CutCopyMode = False
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
“OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=””LUNDI (2)””;Extended Properties=””””” _
, Destination:=Range(“$B$3”)).QueryTable
.CommandType = xlCmdSql
.CommandText = Array(“SELECT * FROM [LUNDI (2)]”)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = “LUNDI__2”
.Refresh BackgroundQuery:=False
End With
Range(“A1”).Select
End Sub19 September 2022 at 8 h 10 min #107235deltacta
ParticipantVoici un ex de fichier.
cordialement19 September 2022 at 8 h 21 min #10723619 September 2022 at 12 h 44 min #107297Daniel
ParticipantBonjour Deltacta, Le Forum,
Et sans macro, si cela peut t’intéresser, en utilisant les fonctions Excel Index et Indirect (voir pièce jointe).
Exemple :
=SIERREUR(INDEX(INDIRECT(SUBSTITUE($B$1;”&”;”_”));LIGNE()-LIGNE(B$3);EQUIV(B$3;LUNDI[#En-têtes];0));””)Cordialement
DanielAttachments:
You must be logged in to view attached files.21 September 2022 at 4 h 47 min #107927deltacta
Participantbonjour a tous
Merci Daniel Blanc cette une bonne solution alternative que j’avais envisagé avec une autre ou cas je ne trouve rien.
Merci pour ta réponse
je clos le sujet pour le moment21 September 2022 at 15 h 49 min #107941Daniel
ParticipantBonjour Deltacta, Le Forum,
Autre possibilité (si faisable avec données d’origine), regrouper toutes les requêtes journalières en une seule avec une colonne contenant la journée (LUNDI, MARDI,etc…), pré-requis les entêtes doivent être identiques (TOURNEE FRAIS et TOURNEE F) ne seront pas mis à la suite mais sur des colonnes différentes. Chaque requête devra avoir le nom du jour dans une colonne.
Ensuite créer une nouvelle requête en prenant comme source la liste déroulante des jours de tournée, une fois chargée faire un clic droit et Drill Down, tu devrais avoir le nom du jour avec le symbole ABC sur la gauche. Donner un nom à cette requête (exemple : ChoixDuJour)
Retour sur la requête contenant toutes les données et filtrer sur la colonne contenant les différents jours, choisir n’importe quel jour, ensuite modifier le jour (exemple : “MARDI” par ChoixDuJour) dans la barre de formule.
L’utilisateur peut changer le jour dans la liste déroulante et en actualisant la requête les données apparaîtront.
Cordialement
Daniel22 September 2022 at 6 h 30 min #107951deltacta
Participantbonjour a tous
Merci Daniel Blanc ,je vais teste ultérieurement.
Cordialement
Résolut -
AuthorPosts
- You must be logged in to reply to this topic.