??? Macro mal écrite ???

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

F

Fabien

Guest
Bonjour

En gros je veux chercher la cellule qui contient "finfeuille" et masquer cette ligne jusqu'à la fin

Merci

Dim L As Long
With Sheets(1)
L = WorksheetFunction.Match("finfeuille", .Columns(1), 0)
.Rows(" & L:65536").Hidden = True
End With

Chercher l'erreur

A+
 
Bonsoir Fabien, le Forum

Tu n'étais pas si loin...

Voici une version un peu plus aboutie au cas où il n'y ait pas de string "FinFeuille" :

Option Explicit

Sub HideFromLastLigne()
Dim L As Long
    With Sheets(1)
        On Error GoTo TheEnd
        L = WorksheetFunction.Match("finfeuille", .Columns(1), 0)
        .Rows(L & ":65536").Hidden = True
    End With

Exit Sub
TheEnd:
    If Err = 1004 Then
        MsgBox "Pas de String finfeuille", vbExclamation
    Else
        MsgBox "Erreur Non Gérée " & Err.Number & " " & Err.Description, vbCritical
    End If
End Sub


Bonne Soirée
@+Thierry
 
Bonsoir Fabien,

Dans ton cas, plutôt que d'utiliser la fonction Match des WorksheetFunction,
je prendrais la méthiode FIND du VBA.

Ce qui pourrait donner quelquechose du genre

With ActiveSheet
Set d = .Range("A:A").Find("finfeuille")
If Not d Is Nothing Then d.EntireRow.Hidden = True
End With

Où ActiveSheet peut-être remplacé par n'importe quelle feuille
Sheets(1) ou Sheets("MaFeuille") ...

Ca te convient ?

Bonne soirée

Rai
 
Bonsoir Thierry et Rai

Merci thierry pour ta macro

Mais je suis sur qu'il y aura écrit "finfeuille" dans La colonne A
De plus je voudrais l'intrégrer dans une autre macro
Elle me supprime des lignes et d'autres choses
et pour finir je voudrais que la mettre la tienne

Donc...
Sub MaMacro()

BLABLABLA

Sub HideFromLastLigne()
Dim L As Long
With Sheets(1)
L = WorksheetFunction.Match("finfeuille", .Columns(1), 0)
.Rows(L & ":65536").Hidden = True
End With
Exit Sub

BLABLA

Exit Sub


Sinon Rai je te remercie mais ne masque quela ligne qui contient "finfeuille"
Or je veux masquer celle ci et les autres qui suivent
Merci
 
re-,

Yaka demander ;oP

Si tu veux masquer toutes les lignes, il y a une mini adaptation de ma procédure à faire :
With ActiveSheet
Set d = .Range("A:A").Find("finfeuille")
If Not d Is Nothing Then Rows(d.Row & ":65536").Hidden = True
End With

Et voilà !
 
- 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
5
Affichages
719
Réponses
4
Affichages
681
Réponses
4
Affichages
587
Retour