Référer le nom renommé dans propriété du Worksheet
SVP je me doute que ça se fait, mais après de multiplse essais je tourne en rond.
Comment faire référence au nom (que j’ai renommé dans Fenêtres propriétés – Worksheet, Ex: RésultatFeuill et CritèreFeuill). Je ne veux pas utiliser le nom des feuilles, car les usagers peuvent les renommer (Ex: "Résultats Extraction", "Critères").
Dim LesCritères As Range ; Dim nbColonnes As Integer ; Dim laFeuilleCritère, laFeuilleRésultat, laFeuilleDonnée As Worksheet
Worksheets("RésultatFeuill").Select ' la feuille s'appèle "Résultats Extraction", mais dans Fenêtre Propriétés, j'ai renommé pour
'RésultatFeuill comment y faire référence dans le code
Set laFeuilleRésultat = ActiveSheet
Sheets("Critères").Select 'Set laFeuilleCritère = Worksheets(CritèreFeuill).Names (je veux pouvoir utiliser la
'référence CritèreFeuill au lieu du nom de la feuille "Critères"
'Set laFeuilleCritère = ActiveSheet
Merci beacoup à l'avance. MalouIM
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Bonsoir,
Ci-joint une proposition à tester en utilisant la propriété CodeName
Bouben
bouden ...Merci infiniment !
pour la propriété CodeName, ça réussi.
Voir .............
Option Explicit
Sub FiltreMarketing()
'********************
' FiltreMarketing Macro : Extraire les employés selon les critères du filtre avancé
Dim LesCritères As Range
Dim nbColonnes, x As Integer
Dim laFeuilleCritère, laFeuilleRésultat, laFeuilleDonnée As Worksheet
'If ActiveSheet.CodeName = "RésultatFeuill" Then
'MsgBox "Ok trouvé codeName", vbInformation
'Else: MsgBox "PAS TROUVÉ ce codeName", vbInformation
'End If
Set laFeuilleRésultat = ActiveSheet
Range("A1").Select
For x = 1 To Sheets.Count
If Sheets(x).CodeName = "CritèreFeuill" Then 'cherche nom renommé dans Fenêtre Propriété
Set laFeuilleCritère = Sheets(x)
ElseIf Sheets(x).CodeName = "DonnéeFeuill" Then 'cherche nom renommé dans Fenêtre Propriété
Set laFeuilleDonnée = Sheets(x)
End If
Next x
laFeuilleCritère.Select
Range("Critères").Select 'sélectionne zone "Critères" : Entêtes et 1 ligne de critères
Selection.CurrentRegion.Select 'sélectionne zone "Critères" : et si existe les autres lignes de critères
Set LesCritères = Selection 'nomme la CurrentRégion "LEScritères"
laFeuilleRésultat.Select
Range("Base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=LesCritères, _
CopyToRange:=Range("A1"), Unique:=False
End Sub
Sub EffacerRésultatFiltre()
'******************************
' EffacerRésultatFiltre Macro
Range("A1").Select
Selection.CurrentRegion.Select
Selection.ClearContents
Range("A1").Select
End Sub