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

Regels verwijderen uit meerdere werkbladen

Status
Niet open voor verdere reacties.

deschrik

Gebruiker
Lid geworden
2 okt 2007
Berichten
122
Ik heb een totaalblad. Hier heb ik een knop aangemaakt en als hierop wordt gedrukt, wordt de actieve rij uit dat totaalblad verwijderd.
dit doe ik met: ActiveCell.EntireRow.Delete

Elke rij bevat echter gegevens, die in een ander werkblad worden weggeschreven.

Mijn bedoeling is als een bepaalde rij word verwijderd uit het totaalblad (bijv. order 0700500), dat dan ook automatisch uit alle onderliggende werkbladen de regels worden verwijderd waarin 0700500 in voorkomt.

Hopelijk kan iemand mij helpen want ik kom er niet meer uit!:shocked:
 
Hmm, en hoe verwijder je de gevonden rijen?

Ik snap het namelijk nog niet echt.
 
Hierbij een voorbeeldje hoe ik het bedoel.

In het totaalblad staan 2 productieorders.

Rij 3 is geselecteerd, dus de zoekwaarde is 0700502. Nu moet uit blad1, blad2 en blad3 na een druk op de knop: productieorder verwijderen, ook automatisch alle rijen die 0700502 uit die bladen verwijderen.

Wanneer rij 4 geselecteerd is, word de zoekwaarde dus 0700501.
 
Je hebt uit mijn code al de lus doorheen de bladen.

Maak van de Function een Sub, zonder argument s dus.

In de helpfiles moet je zoeken op FindNext.

Het verwijderen van een rij ken je ook:
Code:
rCel.EntireRow.Delete

rCel is dan de cel die gevonden wordt door de code.

Wigi
 
Ik heb nu de volgende code:

Dim rTemp As Range
Dim ws As Worksheet
Dim rThisCell

rThisCell = PO

If Worksheets("23").Range("C3") = rThisCell Then
Sheets("23").Range("C3").EntireRow.Delete
End If

End Sub


Nu kijkt hij echter alleen in het andere werkblad in C3. Ik krijg het niet voor elkaar dat hij ook in C4 kijkt, C5 etc. of daar de waarde van PO in staat.:shocked:
 
Nu kijkt hij echter alleen in het andere werkblad in C3. Ik krijg het niet voor elkaar dat hij ook in C4 kijkt, C5 etc.

Tja, als je de lussen uit mijn code haalt, dan is dat redelijk logisch, niet ;)

Post code eens tussen code tags (het # teken aanklikken) en niet in het schuin zetten.
 
Code:
Dim rTemp As Range
Dim ws As Worksheet
Dim rThisCell

rThisCell = PO

If Worksheets("23").Range("C3") = rThisCell Then
Sheets("23").Range("C3").EntireRow.Delete
End If

End Sub
 
hmmmmm.... op deze wijze werkt ie! Maar ik weet niet of die wel in juiste code is geschreven.

Code:
Dim lngRow As Long
For lngRow = Worksheets("23").Range("C" & Rows.Count).End(xlUp).Row To 1 Step -1
    If Sheets("23").Range("C" & lngRow) = PO Then
    Sheets("23").Range("C" & lngRow).EntireRow.Delete
    End If
Next

End Sub
 
Code:
Sub RijenVerwijderen()
    
    Dim rTemp As Range
    Dim ws As Worksheet
    Dim firstAddress As String
    
    For Each ws In ThisWorkbook.Worksheets
    
        If ws.Index <> ActiveSheet.Index Then
                
            Set rTemp = ws.Columns(1).Find(ActiveCell.Value, LookIn:=xlValues, LookAt:=xlWhole)
            
            If Not rTemp Is Nothing Then
                
                firstAddress = rTemp.Address
                
                Do
                    rTemp.EntireRow.Delete
                    Set rTemp = ws.Columns(1).FindNext()
                Loop While Not rTemp Is Nothing
            End If
        
        End If
        
    Next ws
    
End Sub

Wigi
 
Bedankt wigi!:)

Ik had nog een vraag over het volgende:
Code:
 ws.Columns(1).Find(ActiveCell.Value, LookIn:=xlValues, LookAt:=xlWhole)

Waar staat die (1) voor? en lookin = dus alle waarden, lookat = dus hele werkblad?
 
ws.Columns(1) betekent de eerste kolom van het werkblad ws.

Voor de rest: RTFM ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan