• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Foutmelding Object variable or with block not set

Status
Niet open voor verdere reacties.

geep1980

Gebruiker
Lid geworden
7 apr 2009
Berichten
348
Ik heb gegevens geimporteerd vanuit een monitoring tool die er uit zien zoals hieronder

Code:
100.000% (100.000%)
100.000% (100.000%)
100.000% (100.000%)
100.000% (100.000%)
100.000% (100.000%)
100.000% (100.000%)

Om er mee te kunnen rekenen heb ik aan 100 per cel genoeg.
Nu gebruik ik onderstaande code om de linker 6 posities van de waarde (100.00) neer te zetten en daarna pas ik de celeigenschap aan
Ik krijg echter bij de code de foutmelding:
Object variable or with block not set op de Loop While regel

Code:
Dim P As Range, FindAddress As String

With Worksheets(Sheet_Import_Nagios).Range("B:B")
        Set P = .Find("*%*", lookat:=xlWhole)
        If Not P Is Nothing Then
            FindAddress = P.Address
            Do
            P = Left(P, 6)
            Set P = .FindNext(P)
            Loop While Not P Is Nothing And P.Address <> FindAddress
        End If
    End With

Wat doe ik fout
 
Ik weet niet wat je fout doet maar als je do while gebruikt ipv loop while werkt het wel.

Code:
Sub test()
Dim P As Range, FindAddress As String

With Worksheets("Sheet_Import_Nagios").Range("B:B")
        Set P = .Find("*%*", lookat:=xlWhole)
        If Not P Is Nothing Then
            FindAddress = P.Address
            Do While Not P Is Nothing And P.Address <> FindAddress
            P = Left(P, 6)
            Set P = .FindNext(P)
            Loop
        End If
    End With
End Sub

PS sheetname moet tussen " " staan

Niels
 
Niels,

ook met het stukje van jou lukte het niet.
Ben even gaan googlen en heb het met onderstaande werkend kunnen krijgen

Code:
Dim iLoop As Integer
Dim rNa As Range
Dim i As Integer

iLoop = WorksheetFunction.CountIf(Columns(2), "*%*")

Set rNa = Range("B1")

 For i = 1 To iLoop

  Set rNa = Columns(2).Find(What:="*%*", After:=rNa, _
             LookIn:=xlValues, LookAt:=xlWhole, _
             SearchOrder:=xlByRows, SearchDirection:=xlNext, _
             MatchCase:=True)

      rNa = Left(rNa, 6)

 Next i

ik weet dat sheetname tussen "" moet staan. In dit geval stond hij het niet omdat het een variabele is die aan het begin gezet wordt.
Dit heb ik express gedaan zodat als je de sheetname wijzigd je niet in meerdere macro's de naam moet wijzigen alleen maar bij het zetten van de variabele
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan