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

[RESOLU] Récupérer noms dans plusieurs feuilles et cellules

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 !

maninwhite

XLDnaute Occasionnel
Bonjour à toutes et à tous

J'ai un classeur dans lequelle j'ai plusieurs feuilles (chacune correspondante à un service)
Dans chaque feuille, j'ai en colonnnes le nom des personnes , en lignes le numéro de semaine et l'intersection des 2 est complétée par une crois si la tache est réalisée ou non.

J'ai une macro qui me permet de déterminer qui a accompli ou non la tache mais celle ci me donne les noms par service et j'aimerai la même chose pour toute l'usine, donc un cummulé des vlauers des services.

Code:
Option Explicit

Private Sub ComboBox_Services_Change()
    Dim I As Integer, DerCol As Integer
    If ComboBox_Semaines = "" Then Exit Sub
    ListBox_Noms.Clear
    With Sheets(ComboBox_Services.Text)
        DerCol = .Range("IV1").End(xlToLeft).Column
        For I = 3 To DerCol
            If .Cells(ComboBox_Semaines + 1, I) = "" Then ListBox_Noms.AddItem .Cells(1, I)
        Next I
    End With
End Sub

Private Sub UserForm_Initialize()
    Dim I As Integer, Feuille As Worksheet
    For I = 1 To 52
        ComboBox_Semaines.AddItem I
    Next I
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "base" And Feuille.Name <> "Sheet1" And Feuille.Name <> "BOS_Administration" And Feuille.Name <> "BOS_Chantier" And Feuille.Name <> "BOS_Conditionnement" And Feuille.Name <> "BOS_Magasin" And Feuille.Name <> "BOS_Fabrication" And Feuille.Name <> "BOS_Autres" And Feuille.Name <> "Stats" And Feuille.Name <> "Mailinglist" And Feuille.Name <> "Usine" Then
            ComboBox_Services.AddItem Feuille.Name
        End If
    Next
End Sub

Merci beaucoup
 
Dernière édition:
Re : Récupérer noms dans plusieurs feuilles et cellules

Re 🙂,
La réponse est comprise dans ta question 🙄...
Code:
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "base" And Feuille.Name <> "Sheet1" And Feuille.Name <> "Stats" And Feuille.Name <> "Mailinglist" And Feuille.Name <> "Usine" Then
    With Feuille
        DerCol = .Range("IV1").End(xlToLeft).Column
        For I = 3 To DerCol
            If .Cells(ComboBox_Semaines + 1, I) = "" Then ListBox_Noms.AddItem .Cells(1, I)
        Next I
    End With
        End If
    Next
à adapter pour l'exclusion des feuilles.
Bon courage 😎
 
Re : Récupérer noms dans plusieurs feuilles et cellules

Merci mais où dois je placer ce code?

Private Sub ComboBox_Services_Change()

Private Sub UserForm_Initialize()

Dois je créer une nouvelle userform ou puis je intégrer cela dans le code de l'existente?

Merci
 
Re : Récupérer noms dans plusieurs feuilles et cellules

Je suis déslé, mais je ne comprend pas.

La combobox des services est alimentée par le nom des feuilles.
Je n'ai pas de feuille usine.

J'aimerai justement que la macro aye chercher les résultats dans chaque onglet de service pour me doner les noms.

Merci
 
Re : Récupérer noms dans plusieurs feuilles et cellules

Le code ci dessus me permet d'ajouter Usine dans ma combobox, mais comment faire pour que lorsque je sélectionne Usine, il m'ajoute les noms de tous les services? Je suis désolé, mais je ne comprend plus rien.

Ci dessous le code

Code:
Private Sub ComboBox_Services_Change()


    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "base" And Feuille.Name <> "Sheet1" And Feuille.Name <> "Stats" And Feuille.Name <> "Mailinglist" And Feuille.Name <> "Usine" Then
            With Feuille
                DerCol = .Range("IV1").End(xlToLeft).Column
                For I = 3 To DerCol
                    If .Cells(ComboBox_Semaines + 1, I) = "" Then ListBox_Noms.AddItem .Cells(1, I)
                Next I
            End With
        End If
    Next



    '    Dim I As Integer, DerCol As Integer
    '    If ComboBox_Semaines = "" Then Exit Sub
    '    ListBox_Noms.Clear
    '    With Sheets(ComboBox_Services.Text)
    '        DerCol = .Range("IV1").End(xlToLeft).Column
    '        For I = 3 To DerCol
    '            If .Cells(ComboBox_Semaines + 1, I) = "" Then ListBox_Noms.AddItem .Cells(1, I)
    '        Next I
    '    End With
End Sub

Private Sub CommandButton_retour_au_menu_Click()
    BOS_non_fait.Hide
    fenetre_de_connexion.Show
End Sub

Private Sub UserForm_Initialize()
    ComboBox_Services.AddItem "Usine"
    Dim I As Integer, Feuille As Worksheet
    For I = 1 To 52
        ComboBox_Semaines.AddItem I
    Next I
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "base" And Feuille.Name <> "Sheet1" And Feuille.Name <> "BOS_Administration" And Feuille.Name <> "BOS_Chantier" And Feuille.Name <> "BOS_Conditionnement" And Feuille.Name <> "BOS_Magasin" And Feuille.Name <> "BOS_Fabrication" And Feuille.Name <> "BOS_Autres" And Feuille.Name <> "Stats" And Feuille.Name <> "Mailinglist" And Feuille.Name <> "Usine" Then
            ComboBox_Services.AddItem Feuille.Name
        End If
    Next
End Sub

Merci pour ta patiente
 
Re : Récupérer noms dans plusieurs feuilles et cellules

Re 🙂,
Désolé si mes mots sont plutôt durs, mais ce n'est pas que tu n'y comprends plus rien à mon avis, j'ai plutôt l'impression que tu n'as rien compris depuis le début 😉
Donc reprends toutes les discussions, les codes proposés, et assimile leur sens. Tu comprendras mieux où tu en es, et surtout, tu ne dépendras plus de personne pour les modifier 🙄.
Un indice : d'un côté, je t'ai fourni un code pour que "Usine" figure dans ton combo. D'un autre, je t'ai fourni un test pour, si c'est "Usine", je fais ceci, si c'est une feuille commune, je fais cela.
Bon courage 😎
 
Re : Récupérer noms dans plusieurs feuilles et cellules

Tes mots ne sont pas durs mais réaliste.

Comme je l'ai dit dès le début mes bases sont plus que médiocres en VBA et on me demande de pondre un projet de fou.
Ce n'est pas je ne veuille pas apprendre mais j'ai une telle pression que je n'ai pas le temps pour le moment, je dois avancer.


Alors stp aide moi même si me macher le travail ne me rend pas service...
 
Dernière édition:
Re : Récupérer noms dans plusieurs feuilles et cellules

Re 🙂,
Alors stp aide moi même si me macher le travail ne me rend pas service...
C'est sûr que ce n'est pas te rendre service 🙄...
Teste :
Code:
Private Sub ComboBox_Services_Change()
Dim I As Integer, DerCol As Integer
If ComboBox_Semaines = "" Then Exit Sub
If ComboBox_Semaines <> "Usine" Then
    ListBox_Noms.Clear
    With Sheets(ComboBox_Services.Text)
        DerCol = .Range("IV1").End(xlToLeft).Column
        For I = 3 To DerCol
            If .Cells(ComboBox_Semaines + 1, I) = "" Then ListBox_Noms.AddItem .Cells(1, I)
        Next I
    End With
Else
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "base" And Feuille.Name <> "Sheet1" And Feuille.Name <> "Stats" And Feuille.Name <> "Mailinglist" And Feuille.Name <> "Usine" Then
            With Feuille
                DerCol = .Range("IV1").End(xlToLeft).Column
                For I = 3 To DerCol
                    If .Cells(ComboBox_Semaines + 1, I) = "" Then ListBox_Noms.AddItem .Cells(1, I)
                Next I
            End With
        End If
    Next
End If
End Sub
Bon courage 😎
 
Re : Récupérer noms dans plusieurs feuilles et cellules

Ouah mais je vais devenir dingue

J'ai comme erreur 'variable not defined' quelque soit le service choisi snif

Ci dessous la manière donc j'ai mis mon code

Code:
Private Sub ComboBox_Services_Change()

Dim I As Integer, DerCol As Integer
If ComboBox_Semaines = "" Then Exit Sub
If ComboBox_Semaines <> "Usine" Then
    ListBox_Noms.Clear
    With Sheets(ComboBox_Services.Text)
        DerCol = .Range("IV1").End(xlToLeft).Column
        For I = 3 To DerCol
            If .Cells(ComboBox_Semaines + 1, I) = "" Then ListBox_Noms.AddItem .Cells(1, I)
        Next I
    End With
Else
    For Each Feuille In ThisWorkbook.Worksheets
  If Feuille.Name <> "base" And Feuille.Name <> "Sheet1" And Feuille.Name <> "BOS_Administration" And Feuille.Name <> "BOS_Chantier" And Feuille.Name <> "BOS_Conditionnement" And Feuille.Name <> "BOS_Magasin" And Feuille.Name <> "BOS_Fabrication" And Feuille.Name <> "BOS_Autres" And Feuille.Name <> "Comportements_ok" And Feuille.Name <> "Comportements_nok" And Feuille.Name <> "Mailinglist" And Feuille.Name <> "Usine" Then
            With Feuille
                DerCol = .Range("IV1").End(xlToLeft).Column
                For I = 3 To DerCol
                    If .Cells(ComboBox_Semaines + 1, I) = "" Then ListBox_Noms.AddItem .Cells(1, I)
                Next I
            End With
        End If
    Next
End If


Private Sub CommandButton_retour_au_menu_Click()
    BOS_non_fait.Hide
    fenetre_de_connexion.Show
End Sub


Private Sub UserForm_Initialize()
    ComboBox_Services.AddItem "Usine"
    Dim I As Integer, Feuille As Worksheet
    For I = 1 To 52
        ComboBox_Semaines.AddItem I
    Next I
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "base" And Feuille.Name <> "Sheet1" And Feuille.Name <> "BOS_Administration" And Feuille.Name <> "BOS_Chantier" And Feuille.Name <> "BOS_Conditionnement" And Feuille.Name <> "BOS_Magasin" And Feuille.Name <> "BOS_Fabrication" And Feuille.Name <> "BOS_Autres" And Feuille.Name <> "Comportements_ok" And Feuille.Name <> "Comportements_nok" And Feuille.Name <> "Mailinglist" And Feuille.Name <> "Usine" Then
            ComboBox_Services.AddItem Feuille.Name
        End If
    Next
End Sub

A savoir que n'ai pas d'onglet Usine avec les noms de toutes les personnes de la boîte

J'ai ajouté Usine dans la combobox avec ADDItem.
Ce que j'aimerai c'est que lorsque je sélectionne Usine dans la combobox il me donne les noms de toutes les feuilles de services

Si je désactrive tout le code après Else aucun soucis vu qu'il bloque sur "feuille" mais dans ce cas là rien ne s'affiche pour Usine

Merci
 
Dernière édition:
Re : Récupérer noms dans plusieurs feuilles et cellules

Re 🙂,
C'est que tu as un Option Explicit au dessus des macros. A ce moment là, toutes les variables doivent être déclarées
Code:
Dim I As Integer, DerCol As Integer[COLOR=red][B], Feuille As Worksheet[/B][/COLOR]
Bon courage 😎
 
Re : Récupérer noms dans plusieurs feuilles et cellules

Bien vu JNP.

A présent je n'ai plus l'erreur, mais lorsque je séectionne le service Usine de la ComboBox aucun nom n'apparait.

Une idée, je vais craquer avec ce truc...😡😡😡
 
Re : Récupérer noms dans plusieurs feuilles et cellules

Re 🙂,
Code:
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "base" And Feuille.Name <> "Sheet1" And [COLOR=red][B]Feuille.Name <> "BOS_Administration" And Feuille.Name <> "BOS_Chantier" And Feuille.Name <> "BOS_Conditionnement" And Feuille.Name <> "BOS_Magasin" And Feuille.Name <> "BOS_Fabrication" And Feuille.Name <> "BOS_Autres[/B][/COLOR]" And Feuille.Name <> "Comportements_ok" And Feuille.Name <> "Comportements_nok" And Feuille.Name <> "Mailinglist" And Feuille.Name <> "Usine" Then
            ComboBox_Services.AddItem Feuille.Name
        End If
    Next
A mon avis, si tu exclus toutes les feuilles, il ne va pas y avoir beaucoup de noms rajoutés 😛.
A + 😎
 
- 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

A
Réponses
3
Affichages
2 K
Alex6942
A
A
Réponses
1
Affichages
1 K
C
Réponses
1
Affichages
1 K
Cattleya97
C
K
Réponses
8
Affichages
2 K
kamal.elkakiri
K
K
Réponses
1
Affichages
784
KnewIT
K
C
Réponses
6
Affichages
1 K
CrepeAuSmegma
C
D
Réponses
0
Affichages
1 K
D
C
Réponses
6
Affichages
6 K
P
Réponses
4
Affichages
1 K
pascals
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…