Vba desactiver les filtres avant de copier coller

[Résolu/Fermé]
Signaler
Messages postés
348
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
15 avril 2021
-
Messages postés
348
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
15 avril 2021
-
Bonjour,

Dernièrement j'ai mis en place grace à Patrice ce code
adapter à 5 classeurs différents.

Le problème c'est que ce copier coller concerne
des tableaux avec filtres et que si une personne oublie de retirer les filtres
ma base de donner devient incomplète.

Y a t il un moyen simple de retirer le filtre après l'ouverture du classeur et avant le copier .

Merci par avance de vos réponses qui m'aident à progresser

Charlyjack

Rappel du code

Sub Recapsynthese()
Dim wbkSource As Workbook
Dim wshSource As Worksheet
Dim wshCible As Worksheet

Set wshCible = ActiveSheet
wshCible.Cells.Delete
'Titre Colonne
wshCible.Range("A1") = "Société juridique"
wshCible.Range("B1") = "Société de Gestion"
wshCible.Range("C1") = "Fournisseur"

'Mise en forme
wshCible.Range("A1:C1").Interior.Color = 13434879
wshCible.Range("A1:C1").Font.Bold = True

'Ouvrir Classeur 1
DebutNomFichier = wshCible.UsedRange.Rows.Count
Set wbkSource = Workbooks.Open("O:\DD\PILOT BUDGETAIRE\PILOT FACT\2012\FLUX FIN\COMMANDE 2012\COMMANDE FLUX FIN 2012.XLS")
Set wshSource = wbkSource.Worksheets(1)
DerniereLigne = wshSource.UsedRange.Rows.Count
wshSource.Range("A18:AC" & DerniereLigne).Copy wshCible.Range("B" & wshCible.UsedRange.Rows.Count + 1)
wshCible.Range("A" & DebutNomFichier & ":A" & wshCible.UsedRange.Rows.Count) = ("FLUX FIN")
wbkSource.Close

'Ouvrir Classeur 2
DebutNomFichier = wshCible.UsedRange.Rows.Count
Set wbkSource = Workbooks.Open("O:\DDOP\PILOTAGE BUDGETAIRE\PILOTAGE FACTURATION\2012\FLUX FINANCIERS\COMMANDE 2012\COMMANDE SUPPORT 2012.XLS")
Set wshSource = wbkSource.Worksheets(1)
DerniereLigne = wshSource.UsedRange.Rows.Count
wshSource.Range("A18:AC" & DerniereLigne).Copy wshCible.Range("B" & wshCible.UsedRange.Rows.Count + 1)
wshCible.Range("A" & DebutNomFichier & ":A" & wshCible.UsedRange.Rows.Count) = ("SUPPORT ")
wbkSource.Close





1 réponse

Messages postés
15957
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 septembre 2021
1 534
Bonjour,

Une facon de faire:

'Effacements des filtres
Sub Filtractif()
  Dim f As Filter
  'Nom de feuille a adapter
  Set ID = Worksheets("feuil1")
  If ID.AutoFilterMode Then
    indice = 0
    For Each f In ID.AutoFilter.Filters
      If f.On Then
        ID.ShowAllData
        Exit For
      End If
    Next
  End If
End Sub


Bonne suite
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
348
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
15 avril 2021
1
Merci beaucoup, j'ai essayé et ça fonctionne en partie,
pour les 3 feuilles de mon premier classeur tout baigne, par contre ça bloque sur le second
ça beugue sur Set ID= Worksheets("nom de la feuille")
Je cherche encore mais grand merci pour cette aide
Messages postés
15957
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 septembre 2021
1 534
Re,
Set ID= Worksheets("nom de la feuille") faites un copier/coller du nom de la feuille en allant sur la feuille, renommer, copier
Messages postés
348
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
15 avril 2021
1
La macro ralentit pas mal mais ça fonctionne super bien, un grand merci
le copier coller du nom il fallait y penser !