Recherchev sous excel

  • Initiateur de la discussion Initiateur de la discussion AZQ13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

AZQ13

Guest
Userform comment rentrer une donnée et la rechercher avec un userform
 

Pièces jointes

Dernière modification par un modérateur:
Re : Ventiler par activité (Base de données) VBA

Hello
et bienvenu ici

pour débuter.....
place ce code pour le bouton de ton formulaire
Code:
Private Sub CommandButton1_Click()
nb = Sheets("BDD").Range("A65536").End(xlUp).Row
Sheets("BDD").Activate
Sheets("BDD").Range("$A$1:$F$9").AutoFilter Field:=3, Criteria1:=Activite.Value
Range("A2:F" & nb).SpecialCells(xlVisible).Select
Selection.Copy
   
   
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
    ActiveSheet.Name = Activite.Value
    Sheets("BDD").Select
    ActiveSheet.Range("$A$1:$F$" & nb).AutoFilter Field:=3
    Application.CutCopyMode = False
    
End Sub

1) ne marchera que si les onglets sont inexistants.. il n'y a aucun test.... pour l'instant.. ;-)
2) peut TREEEEESS certainement se faire avec formule.. sans passer par le VBA
 
Re : Ventiler par activité (Base de données) VBA

avec une évolution: test d'existence..

Code:
Private Sub CommandButton1_Click()
Sheets("BDD").Activate
nb = Sheets("BDD").Range("A65536").End(xlUp).Row

'on applique un filtre sur la colonne C - avec l'activité choisie
Sheets("BDD").Range("$A$1:$F$" & nb).AutoFilter Field:=3, Criteria1:=Activite.Value
Range("A2:F" & nb).SpecialCells(xlVisible).Select
Selection.Copy
   
   
'on recherche dans le classeur si l'onglet est déjà créé ou pas
dejacree = False
For Each ws In Worksheets
    If ws.Name = Activite.Value Then
        dejacree = True
        'et la. on fait quoi? on écrase?
    End If
Next ws
    If Not (dejacree) Then
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = Activite.Value
    End If
    Sheets(Activite.Value).Activate
    ActiveSheet.Paste
    
    'on revient sur la BDD et on enlève le filtre
    Sheets("BDD").Select
    ActiveSheet.Range("$A$1:$F$" & nb).AutoFilter Field:=3
    Application.CutCopyMode = False
    
End Sub
 
Re : Ventiler par activité (Base de données) VBA

Impeccable vgendron, super rapide et efficace 🙂 merci beaucoup

Juste 2 petits points supplémentaires :
- La feuille BDD doit rester intacte alors que là elle se modifie en même temps que la page créée
- Est-il possible de renommer le nom de la feuille avec l'activité ?

Grand grand merci !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
224
Retour