• 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.

Omhoog zoeken en hyperlink volgen in code

Status
Niet open voor verdere reacties.
De code in #33 is voor jou veel eenvoudiger (en bovendien robuuster).
 
ben ik beslist met je eens,
ik ben er ook mee bezig geweest maar kreeg hem helaas (nog) niet aan de praat.
 
In de bijlage het eerdere voorbeeld van #20,
Maar nu met wat nadere uitleg er bij.
 

Bijlagen

  • Volgtest svp 2_1_1.xlsm
    21 KB · Weergaven: 13
Het is handig de knop aan de juiste macro te hangen.

Je tweede vraag is gewoon :
Code:
activecell.find "§"
 
of ook zo om hem vooraan te vinden
Code:
Sub VolgendeParagraaf()
     Dim r
     With ActiveCell
          Set c = .Offset(1).Resize(500 - .Row)    'je wil zoeken vanaf de volgende rij tot rij 500 ???, dus dit bereik
          s = Replace("=AGGREGATE(15,6,ROW(#)/(left(#,1)=""§""),1)", "#", c.Address)  '--> zoekt of er een § vooraan staat !!!
          r = Evaluate(s)
          If IsNumeric(r) Then
               Application.Goto ActiveCell.Offset(r - .Row)
          Else
               MsgBox "geen § meer", vbInformation
          End If
     End With
End Sub
 
Code:
Sub Zoek_§()
For i = ActiveCell.Row To Range("C" & Rows.Count).End(xlUp).Row
        If Left(Cells(i, 3), 1) = "§" Then
            Application.Goto Cells(i, 3)
            Exit For
        End If
    Next
End Sub
of
Code:
Sub Zoek_§()
For i = ActiveCell.Row To Range("C" & Rows.Count).End(xlUp).Row
        If Left(Cells(i, 3), 1) = "§" Then
            Application.Goto Cells(i, 3).Offset(, -2), True
            Exit For
        End If
    Next
End Sub
 
Laatst bewerkt:
Bedankt! zomaar 3 codes!

Ik heb ze alle 3 getest.
De code van Ad1957 ziet er compacter uit maar lijkt opzij te zoeken ipv naar beneden.

De code van COW18 doet het uitstekend
Maar als ik dit stuk in de rest van mijn code integreer loopt het (nog) niet helemaal goed. Kwestie van finetunen lijkt mij, ik heb goeie hoop daar wel uit te komen.

Bedankt!
 
de tweede code van ad1957 zoekt niet opzij maar gaat wel naar de eerste kolom in de rij waar hij het teken gevonden heeft.
 
iets idiotproofer gemaakt met het definieren van 2 variabelen.
Code:
Sub VolgendeParagraaf()
     Dim LaatsteRij: LaatsteRij = 500     'vanaf de volgende rij tot maximaal deze rij zoeken
     Dim MijnKolom: MijnKolom = 3     'in de 3e kolom die § zoeken
     Dim r, c

     With ActiveCell
          Set c = .Offset(1, MijnKolom - .Column).Resize(LaatsteRij - .Row)     'je wil zoeken vanaf de volgende rij tot rij 500 ???, dus dit bereik
          r = Evaluate(Replace("=AGGREGATE(15,6,if(left(#,1)=""§"",row(#)),1)", "#", c.Address))     '--> zoekt of er een § vooraan staat !!!
          If IsNumeric(r) Then
               Application.Goto ActiveCell.Offset(r - .Row, MijnKolom - .Column)     'ga naar die paragraaf
          Else
               MsgBox "geen § meer", vbInformation
          End If
     End With
End Sub
 
Laatst bewerkt:
Waarom niet zó ?

Code:
Sub M_snb()
   activecell.resize(10000).find("§").select
End Sub
 
als uiterst minimiem minpuntje, die zal ook een cel kiezen waar die "§" niet voorin staat misschien ?
 
of
Code:
On Error Resume Next [COLOR="#FF0000"]'***helemaal op het eind kan het fout gaan[/COLOR]
 Cells(ActiveCell.Row - 1, 3).Resize(10000).Find("§").Select
 
@cow

alleen cellen die het te zoeken teken bevatten.bijv.zó:

Code:
Sub M_snb()
  ActiveCell.Resize(10000).Find("§", , , 1).Select
End Sub

@AD19
zoeken in kolom C

Code:
Sub M_snb()
  ActiveCell.Offset(ActiveCell.Row > 1, 3 - ActiveCell.Column).Resize(Rows.Count - ActiveCell.Row).Find("§", , , 1).Select
End Sub

Ik zie niet wanneer dit mis zou kunnen gaan 'op het eind'.
Hooguit dat zo'n cel niet gevonden wordt.
 
Laatst bewerkt:
ach snb, ik zocht spijkers op laag water om toch een tegenargumentje te kunnen geven, vandaar die voorafgaande formulering ... .
 
Jij formuleert wellicht wat anderen denken.....:)
 
misschien werkt dit toch beter.:d
Code:
ActiveCell.Offset(ActiveCell.Row > 1, 3 - ActiveCell.Column).Resize(Rows.Count - ActiveCell.Row).Find("§", , , [COLOR="#FF0000"][SIZE=4][SIZE=5]2[/SIZE][/SIZE][/COLOR]).Select
echter als de activecell 2 rijen onder de laatste § is dan krijg je toch een foutmelding.
Daarom had ik
Code:
on error resume next
boven de code gezet.
 
Andere optie:
Code:
Set c = ActiveCell.Offset(ActiveCell.Row > 1, 3 - ActiveCell.Column).Resize(Rows.Count - ActiveCell.Row).Find("§", , , 2)
    If Not c Is Nothing Then Application.Goto c
Zijn we meteen af van die "select"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan