Methode find

KTM

XLDnaute Impliqué
Salut chers tous
Dans le fichier que je joint
J'aimerais par macro sélectionner la plage "A1","B"& lig
La colonne A contient une formule.
lig est le numero de la derniere ligne de la colonne A dont la valeur est differente de zero.
J'ai fai le code qui suit mais il ne fonctionne pas comme j'ai expliqué . Quelque chose ne va pas pas dans mon code. Comment corriger ?

Sub test()
Dim lig As Integer
lig = Range("A1", Range("A1").End(xlDown)).Find(0, Lookat:=xlPart).Row - 1
Range("A1", "B" & lig).Select
End Sub
 

Pièces jointes

  • A_test.xlsm
    18.6 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonsoir KTM,
Code:
Sub test()
With [A1].CurrentRegion
    .Resize(Evaluate("MAX(IF(" & .Columns(1).Address & "<>0,ROW(" & .Columns(1).Address & ")))")).Select
End With
End Sub
VBA sait que la formule évaluée est matricielle...

A+
 

eriiic

XLDnaute Barbatruc
Bonjour,

quand tu travailles avec range.Find toujours l'affecter à une variable range avant.
Ca te permet de tester qu'il a bien trouvé. Sinon si tu fais un .Row sur Nothing, erreur assurée.
J'ai laissé .Select mais c'est à faire que quand on n'a pas lechoix.
VB:
    Dim lig As Long, c As Range
    Set c = Range("A1", Range("A1").End(xlDown)).Find(0, Lookat:=xlPart)
    If Not c Is Nothing Then
        ' soit
        lig = c.Row
        Range("A1", "B" & lig).Select
        ' ou :
        [A1:B1].Resize(c.Row).Select
    Else
        'non trouvé
    End If
eric
 

job75

XLDnaute Barbatruc
Bonjour KTM, eriiiic, le forum,

Puisque vous voulez du Find :
Code:
Sub test()
Dim f, c As Range
With [A1].CurrentRegion.Columns(1)
    f = .Formula
    .Value = .Value
    .Replace 0, "", xlWhole
    Set c = .Find("*", , xlValues, xlWhole, , xlPrevious)
    .Formula = f
    If c Is Nothing Then MsgBox "Sélection impossible" Else .Resize(c.Row, 2).Select
End With
End Sub
A+
 

Discussions similaires

Réponses
25
Affichages
839
Réponses
6
Affichages
132

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin