Microsoft 365 créer onglets en automatique a partir d'une BDD

  • Initiateur de la discussion Initiateur de la discussion dd_76
  • Date de début Date de début
  • Mots-clés Mots-clés
    excel

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 !

dd_76

XLDnaute Junior
Bonjour,

Besoin de votre aide : je cherche a automatiser des fiches d'émergements.
j'ai une base de données, qui calcul un nom de chéquier par adultes et enfants
Je souhaite faire une feuille d'émergement en automatique
les critères de regroupement sont :
Agence et le site (toutes les personnes de la même agence et du même site devront être sur la même feuille)
avoir le total de chéquier par nom prénom (col B et C) pour adultes et pour enfant.

j'aimerais
- un onglet unique : ou avec deux liste déroulante ou l'on peut choisir l'agence et le site

et un bouton qui permet d'imprimer un pdf dans un dossier

j'espère avoir été claire 😉
un grand merci de votre aide par avance
 

Pièces jointes

Dernière édition:
Bonsoir dd_76, le fil,

Chez moi sur Excel 2019 les fonctions FILTRE et UNIQUE n'existent pas donc j'ai créé cette macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim d1 As Object, d2 As Object, x$, c As Range, mem, L
Set d1 = CreateObject("Scripting.Dictionary")
d1.CompareMode = vbTextCompare 'la casse est ignorée
Set d2 = CreateObject("Scripting.Dictionary")
d2.CompareMode = vbTextCompare 'la casse est ignorée
x = LCase([B1])
For Each c In [Tableau1[Agence]] 'tableau structuré
    d1(c.Value) = ""
    If LCase(c) = x Then d2(c(1, 2).Value) = ""
Next c
With Sheets("Listes")
    .[A:B].ClearContents 'RAZ
    If d1.Count Then .[A1].Resize(d1.Count) = Application.Transpose(d1.keys)
    If d2.Count Then .[B1].Resize(d2.Count) = Application.Transpose(d2.keys)
End With
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
If IsError(Application.Match([E1], d2.keys, 0)) Then [E1] = ""
[B1:E1].Validation.Delete 'RAZ
[B1].Validation.Add xlValidateList, Formula1:="=Listes!A1:A" & d1.Count
[E1].Validation.Add xlValidateList, Formula1:="=Listes!B1:B" & d2.Count
[A4:D20].ClearContents 'RAZ
Rows.Hidden = False 'affiche toutes les lignes
With [Tableau1]
    .AutoFilter
    .AutoFilter 6, x '1er critère
    If [E1] <> "" Then .AutoFilter 7, [E1] '2ème critère
    Intersect(.SpecialCells(xlCellTypeVisible), Union(.Parent.[B:C], .Parent.[V:W])).Copy
    [A4].PasteSpecial xlPasteValues 'colle les valeurs
    Application.CutCopyMode = 0
    .AutoFilter 'affiche tout
End With
mem = [C4:C20]: [C4:C20] = [D4:D20].Value: [D4:D20] = mem 'inversion des colonnes
Target.Select
'---masque les lignes vides---
[A4:A20].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
'---ajustement des largeurs de colonnes---
[B1].UnMerge
Columns("A:D").AutoFit
[B1:C1].Merge
L = Columns("B").ColumnWidth
[B3:B20].Columns.AutoFit
If L > Columns("B").ColumnWidth + Columns("C").ColumnWidth Then Columns("B").ColumnWidth = L - Columns("C").ColumnWidth
Application.EnableEvents = True 'réactive les évènements
End Sub
Pour répondre à votre post #5 les largeurs des colonnes sont ajustées en fin de macro.

Pour tester modifiez les cellules B1 ou E1.

A+
 

Pièces jointes

Dernière édition:
Dans la macro précédente j'ai ajouté le masquage des lignes vides.
Bonjour,
merci infiniment
1) j'ai intégré mes données dans l'onglet Base (j'ai 1105 lignes)
2) dans l'onglet émargement, j'ai ajouté des lignes pour que mon TOTAL chéquiers soit en ligne 640
3) je vais dans l'onglet émargement, pour choisir mon antenne et la macro bloque (je clique sur déblocage et en surbrillance jaune le début de la ligne 10 est jaune
If Lcase (c) = x then
 
- 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

Discussions similaires

Réponses
5
Affichages
683
Retour