??? Macro mal écrite ???

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+
 
@

@+Thierry

Guest
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
 
R

Rai

Guest
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
 
F

Fabien

Guest
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
 
R

Rai

Guest
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à !
 

Statistiques des forums

Discussions
312 490
Messages
2 088 875
Membres
103 980
dernier inscrit
grandmasterflash38