Recherchev sous excel

AZQ13

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

Pièces jointes

  • Ventiler.xlsm
    22.6 KB · Affichages: 34
Dernière modification par un modérateur:

vgendron

XLDnaute Barbatruc
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
 

vgendron

XLDnaute Barbatruc
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
 

AZQ13

XLDnaute Nouveau
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 !
 

Discussions similaires

Réponses
11
Affichages
425
Réponses
2
Affichages
199

Statistiques des forums

Discussions
314 237
Messages
2 107 597
Membres
109 872
dernier inscrit
TESTEYEFB