bug de macro. La solution svp

  • Initiateur de la discussion Initiateur de la discussion Delors
  • 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 !

D

Delors

Guest
Lorsque je fais ma recherche avec les feuilles visibles, tout fonctionne.
mais lorsque je masque les feuilles., tout bug.
que faire svp 🙁

Voici le fichier en question.

Cijoint.fr - Service gratuit de dépôt de fichiers
 
Re : bug de macro. La solution svp

Re,

Tu as ce genre de ligne dans ton code
Code:
With Sheets("conso_pp").Select
Ce n'est pas possible avec les feuille masquée 🙄

Utilises tout simplement
Code:
[COLOR=blue][B]With Sheets("conso_pp")[/B][/COLOR]

Ensuite il faut remplacer les : Range(
par : .Range(

A+
 
Dernière modification par un modérateur:
Re : bug de macro. La solution svp

heureux de te retrouver bruno
merci pour ta reponse.

mais serait il possible de contourner cette ligne ?
Code:
With Sheets("conso_pp").Select

existe til autres attributs de Sheets qui peuvent permettre de lire le contenu de ma feuille masquée ?

big up 😎
 
Re : bug de macro. La solution svp

Salut Delors,
tu peux quand même travailler avec une feuille masquée par macro. L'important, c'est de ne pas faire de .Select ou de .Activate .

Il faut donc employé des codes un peu plus long. Par exemple,

Workbook("TonWorkbook").Sheets("Tafeuille").Range("TonRange").Value = "TonPrénom"

Même si la feuille est masquée, tu peux y inscrire de l'information, y lire des cellules, y faire des copies, etc... L'important, c'est que tu ne demande pas à ta macro de sélectionner la feuille. Tu dois seulement précéder chacune de tes commandes par Sheets("Tafeuille").Range("...

En espérant t'avoir éclairé un peu,

Cordialement,

Étienne
 
Re : bug de macro. La solution svp

Merci a vous Bruno et Etienne.

desolé bruno mais la solution d'Etienne semblait mieux correspondre a mon code.

Code:
Private Sub Rechercher()
    
    ' Rechercher les données en fonction des critères
    Dim rCel As Range
    Dim lgLig As Long
    Dim lgLigDeb As Long


    Dim pp1 As String
    Dim pp2 As String
    Dim pp3 As String
    Dim pp4 As String
    
    pp1 = "*"
    pp2 = "*"
    pp3 = "*"
    pp4 = "*"
    
    If nom.Value <> "" Then pp1 = nom.Value
    
    If prenom.Value <> "" Then pp2 = prenom.Value
    
    If datenais.Value <> "" Then pp3 = datenais.Value
    
    If nom_mere.Value <> "" Then pp4 = nom_mere.Value
        
    Resultat.ListBoxLocataire.Clear

    ' Cas des personnes physiques uniquement
    
    'With Sheets("conso_pp")
    
    ' Boucle de la 6eme à la dernière ligne de la feuille

    For lgLigDeb = 6 To ThisWorkbook.Sheets("conso_pp").Range("A" & Cells.Rows.Count).End(xlUp).Row

            ' LCase permet de transformer une chaine de caracteres en minuscules
                If LCase(ThisWorkbook.Sheets("conso_pp").Range("C" & lgLigDeb).Value) Like LCase("*" & pp1 & "*") _
                    And LCase(ThisWorkbook.Sheets("conso_pp").Range("D" & lgLigDeb).Value) Like LCase("*" & pp2 & "*") _
                    And LCase(ThisWorkbook.Sheets("conso_pp").Range("E" & lgLigDeb).Value) Like LCase("*" & pp3 & "*") _
                    And LCase(ThisWorkbook.Sheets("conso_pp").Range("G" & lgLigDeb).Value) Like LCase("*" & pp4 & "*") _
                Then
                    With Resultat.ListBoxLocataire
                        .AddItem ThisWorkbook.Sheets("conso_pp").Range("A" & lgLigDeb).Value
                        .List(.ListCount - 1, 1) = ThisWorkbook.Sheets("conso_pp").Range("B" & lgLigDeb).Value
                        .List(.ListCount - 1, 2) = ThisWorkbook.Sheets("conso_pp").Range("C" & lgLigDeb).Value
                        .List(.ListCount - 1, 3) = ThisWorkbook.Sheets("conso_pp").Range("D" & lgLigDeb).Value
                        .List(.ListCount - 1, 4) = ThisWorkbook.Sheets("conso_pp").Range("E" & lgLigDeb).Value
                        .List(.ListCount - 1, 5) = ThisWorkbook.Sheets("conso_pp").Range("G" & lgLigDeb).Value
                        .List(.ListCount - 1, 6) = ThisWorkbook.Sheets("conso_pp").Range("H" & lgLigDeb).Value
                        .List(.ListCount - 1, 7) = ThisWorkbook.Sheets("conso_pp").Range("I" & lgLigDeb).Value
                        .List(.ListCount - 1, 8) = ThisWorkbook.Sheets("conso_pp").Range("M" & lgLigDeb).Value
                        .List(.ListCount - 1, 9) = ThisWorkbook.Sheets("conso_pp").Range("N" & lgLigDeb).Value
                        '.List(.ListCount - 1, 9) = Range("N" & lgLigDeb).Value
                        
                        lgLig = lgLig + 1
                     End With
                End If
    Next lgLigDeb    ' Fin de la boucle For
'End With
End Sub

ca fonctionne parfaitement des a present.
et je suis tres heureux comme a la LCL

merci encore et boe soirée. 🙂😉😎
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
163
D
  • Question Question
Réponses
5
Affichages
253
Didierpasdoué
D
Retour