Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Private Sub Worksheet_Activate, plusieur fois dans la même feuille

Scorpio

XLDnaute Impliqué
Bonjour à tous,
Dans ce classeur, j'ai dans la feuille "BD" un code: Private Sub Worksheet_Activate pour transférer mes lignes 1 à 1, dans la feuille "Réglés"
J'aimerais savoir si c'est possible de mettre plusieurs fois Private Sub Worksheet_Activate dans la même feuille.
Y aurait-il, s'il vous plaît, un membre sympas pour me dépanner, attention, je ne suis pas un caïd comme vous en ce qui concerne les code VBA.

Merci et a plus...


Scorpio
 

Pièces jointes

  • 105_FactReglees.xlsm
    29.2 KB · Affichages: 12

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Scorpio,
Non, vous ne pouvez avoir qu'une seule macro Worksheet_Activate qui sera activée lorsque vous sélectionnerez la feuille.
Par contre vous pouvez enchainer les instructions, comme cela :
VB:
Private Sub Worksheet_Activate()
    Sheets("BD").[A1:D1000].AdvancedFilter Action:=xlFilterCopy, _
      CriteriaRange:=[G1:G2], CopyToRange:=[A1:D1]
    Sheets("BD").[A1:D1000].AdvancedFilter Action:=xlFilterCopy, _
      CriteriaRange:=[I1:I2], CopyToRange:=[A1:D1]
    Sheets("BD").[A1:D1000].AdvancedFilter Action:=xlFilterCopy, _
      CriteriaRange:=[K1:K2], CopyToRange:=[A1:D1]
End Sub
Mais là votre macro ne veut plus rien dire, les copies écrasent les précédentes.
Il faudrait préciser ce que vous voulez faire.
 

Scorpio

XLDnaute Impliqué
Bonjour sylvanu,
OK, merci de me répondre si vite, sympas,
Alors, depuis la feuille "BD", a partir de la colonne "D".
Je vais faire une liste déroulante avec Les critères suivant:
Réglés pour la feuille "Réglés"
Annulé pour la feuille "Annulé"
Archivés pour la feuille "Archivés"
Je sélectionne donc dans la BD 1 ligne que je veux transférer dans la feuille "Annulés", je saisi Annulés sur ma liste déroulante en colonne "D" et la ligne se transfert dans la feuille "Annulés"
Le résultat seras donc comme de transférer 1 ligne dans la feuille Réglés, et ainsi de suite pour les autres feuille.

Je ne sais pas si je me suis bien exprimé
A plus, et merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Un essai en PJ avec sur chaque feuille une macro de type :
VB:
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    Sheets("BD").[D1] = "Réglé"
    Sheets("BD").[A1:D1000].AdvancedFilter Action:=xlFilterCopy, _
      CriteriaRange:=[G1:G2], CopyToRange:=[A1:D1]
    Sheets("BD").[D1] = "Statut"
End Sub
Quand on sélectionne une feuille alors la synthèse est faite.
en espérant que cela colle au besoin.
 

Pièces jointes

  • 105_FactReglees.xlsm
    31.5 KB · Affichages: 6

Jacky67

XLDnaute Barbatruc
Bonjour à tous
Allez Hop... une autre façon en PJ
Transfert direct quand il y a saisie en colonne D
 

Pièces jointes

  • 105_FactReglees V1.xlsm
    28.4 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir tout le monde,
@Scorpio,
En PJ, c'est rectifié. Des erreurs de nommage.
J'en ai profité pour nettoyer un peu la macro :
VB:
Private Sub Worksheet_Activate() 'Compte Epargne
    Application.ScreenUpdating = False
    With Sheets("Ecritures")
        .[F1] = "CpteEpargne"
        .[A1:F1000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[G1:G2], CopyToRange:=[A1:F1]
        .[F1] = "Statut"
    End With
    Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • 105_FactReglees (Scorpio).xlsm
    33.7 KB · Affichages: 7

Scorpio

XLDnaute Impliqué
Bonjour sylvanu,, est un grand merci de ton aide, super, ca fonctionne bien.
Pourrais je encore 1 fois te demander un coup de pouce ??
Je voudrais laisser une ligne vide (La Ligne2) entre les titres et la première ligne d'écriture, qui serais (La ligne3) sur les feuille CpteEpargne, CpteVariable, CpteVacance, et CpteChargesAppartement.
Je te remercie beaucoup, a+++
Scorpio
 

Pièces jointes

  • 105_FactReglees (Scorpio).xlsm
    38.1 KB · Affichages: 1

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…