Zoeken naar waarde in kolom B

Status
Niet open voor verdere reacties.

appie701

Gebruiker
Lid geworden
11 apr 2021
Berichten
6
Hallo,

Ik heb een bestand waar in kolom B gezocht moet worden naar de waarde "Wissel".
Als deze gevonden is, in kolom C op de gevonden regel het woord "Wissel" zetten + de volgende 4 regels eronder in kolom C ook met waarde "Wissel".
In het meegestuurd voorbeeld, zullen dus op C22:C26 /C64:C68 / C161:C165 / C179:C183 value "Wissel" staan.

Alvast bedankt voor het meedenken.
 

Bijlagen

  • voorbeeld wissel.xlsx
    12,4 KB · Weergaven: 17
Zoiets?
Code:
Sub pagadder()
Set sht = Sheets("Blad1")
    For Each c In sht.UsedRange.Columns(2).Cells
        If c.Value Like "*WISSEL*" Then c.Offset(, 1).Resize(5) = Application.Transpose(Array("Wissel"))
    Next c
End Sub
 
Code:
[COLOR=#3E3E3E]If c.Value Like "*WISSEL*" Then c.Offset(, 1).Resize(5) [/COLOR][COLOR=#ff0000]= "Wissel"[/COLOR]

is al voldoende.
 
vooraf niet de C-kolom leegmaken om vorige resultaten te verwijderen ?
 
Code:
Sub M_snb()
   With Sheet1.Cells(1).CurrentRegion.Columns(2)
      .AutoFilter 1, "*wissel*"
      For Each it In .SpecialCells(12)
         If it.Row > 1 Then c00 = c00 & "," & it.Offset(, 1).Resize(5).Address
      Next
      .AutoFilter
    End With
    Range(Mid(c00, 2)) = "Wissel"
End Sub
 
Range(c00 heeft een beperking van 255 tekens ben ik een aantal jaren geleden achter gekomen.
Geen idee of dat hier een rol in speelt, maar toch.
 
@HSV, goeie opmerking igv. uitgebreidere bereiken, workaround met een bereik ipv een string
Code:
Sub ccc()
   With Sheets(1).Cells(1).CurrentRegion.Columns(2)
      .Offset(, 1).ClearContents                                'kolom er naast leegmaken
      Set c = .Cells(1)                                         'hulpbereik beginnen met een cel buiten de C-kolom
      .AutoFilter 1, "*wissel*"                                 'je filter
      For Each it In .SpecialCells(12)                          'alleen zichtbare cellen
         If it.Row > 1 Then Set c = Union(c, it.Offset(, 1).Resize(5))   'toevoegen aan je bereik
      Next
      .AutoFilter                                               'filter uitzetten
      If c.Count > 1 Then Intersect(.Offset(, 1), c).Value = "Wissel"   'behalve die 1e cel, al de rest vullen met "Wissel"
   End With
End Sub
 
Code:
Sub M_snb()
   Cells(1).CurrentRegion.Columns(2).Name = "snb"

   [snb].Offset(, 1) = [if(len(snb)=len(substitute(snb,"WISSEL","")),"","wissel")]

   For Each it In [snb].Offset(, 1).SpecialCells(2)
      it.Resize(5) = it.Value
   Next
End Sub
 
met een ouderwetse formule, maak er eventueel een tabel van
 

Bijlagen

  • voorbeeld wissel.xlsx
    19,4 KB · Weergaven: 13
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan