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

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 !
 

vgendron

XLDnaute Barbatruc
Re : Recherchev sous excel

Hello

- La feuille BDD doit rester intacte alors que là elle se modifie en même temps que la page créée

Je ne comprend pas bien.. normalement, il n'y a qu'un filtre qui est appliqué en cours de macro et à la fin je le supprime..
donc la feuille BDD n'est pas modifiée.. ??
 

Discussions similaires

Réponses
11
Affichages
425
Réponses
2
Affichages
199
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…