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

Rijen verwijderen op basis van inhoud

Status
Niet open voor verdere reacties.

Evelthoven

Gebruiker
Lid geworden
26 sep 2006
Berichten
690
Goedemiddag,

Over bijgaand bestandje heb ik een paar vragen / opmerkingen:

Via gegevens importeren heb ik van een CSV-bestand bijgaand bestand gemaakt in Excel. Dit moet ik dagelijks gaan doen vanaf 1 jan. 2007
Graag zou ik een macro hebben waar het volgende mee uitgevoerd kan worden:
1. uit regel twee moet de datum gehaald worden. Ind dit geval 0110 is 10/01/2007. Deze datum moet komen te staan in de rij waarin in kolom B de eerste keer voorkomt MGR.
Graag zou ik de naam van het tabblad alsvolgt wijzigen: IM070110 (dus afhankelijk van de betreffende datum).
2. Als de datum hier geplaatst is kunnen rij 1 en rij 2 verwijderd worden. Rij 3 en 4 moeten blijven bestaan.
3. Alle rijen waarvan de inhoud in kolom B niet begint met MGR moeten verwijderd worden. Bovendien kan kolom B nu verwijderd worden.

De bedoeling van dit alles is dat ik wekelijks een totaaloverzicht moet gaan maken van de voorafgaande 7 dagen. Ik denk hierbij om de daggegevens iedere keer te gaan kopieren en te plakken naar het achtste tabblad.

Is er iemand die me kan helpen ?

Iedereen alvast bedankt,
Eric
 

Bijlagen

Goedemorgen,

Ik denk dat ik teveel vragen heb gesteld vandaar dat ik denk dat er nog niemand heeft gereageerd. Uiteraard ben ik ook nog steeds met mijn problemen bezig geweest.
Met wat plak en knipwerk aan de hand van eerder gestelde vragen op het forum heb ik voor een deel van mijn vraag 3 (het verwijderen van rijen) de volgende code gemaakt:

HTML:
Sub Rijen_verwijderen()
Application.ScreenUpdating = False
Dim lngRow As Long
For lngRow = Range("B" & Rows.Count).End(xlUp).Row To 1 Step -1
    If Range("B" & lngRow) = "MGAC" Then
            Rows(lngRow).Delete
    End If
    If Range("B" & lngRow) = "MGAS" Then
            Rows(lngRow).Delete
    End If
Next

Application.ScreenUpdating = True
End Sub

Ik heb dit getest en het werkt. Misschien dat het beter kan, maar het belangrijkste is dat dit gedeelte nu goed gaat. Het verwijderen van kolom B is ook geen probleem. Dit kan ik met de macro-recorder oplossen. Dus vraag 3 is opgelost.

Gr.
Eric
 
Zie punt 2 in mijn vraag:

De volgende code heb ik geprobeerd om in A5 en volgende cellen in kolom A tot de cel in A waarin in kolom B nog iets staat de datum te krijgen, maar wat ik zie is dat de cursor op A5 gaat staan maar er komt niets te staan. Helaas krijg ik het niet voor elkaar.
Is er aub. iemand die wil helpen ?

HTML:
Sub Datum_invoeren()
Application.ScreenUpdating = False
   
 Range("a5").Select
Dim conResponse As Variant
    conResponse = MsgBox("Wil je gegevens invullen ?", vbQuestion + vbYesNo, "Actuele gegevens ...")
    If conResponse = vbNo Then Exit Sub
    Application.DisplayAlerts = False
        a = InputBox("Vul de datum in")
    varLegeCel = 0
For rij = 5 To 200
        If Cells(rij, 1).Value = "" Then
            varLegeCel = rij
            Sheets("Blad1").Cells(varLegeCel, 1).Value = Format(a, "mm-dd-yyyy")
            Exit For
        End If
    Next rij
    
  Range("b65536").End(xlUp).Offset(0, -1).Select
    Range(Selection, Selection.End(xlUp)).FillDown
    
    Range("A5").Select
    Application.ScreenUpdating = True
End Sub

Ik ben benieuwd wat er fout is.

Gr.
Eric
 
Goedemorgen,

Helaas heeft er nog niemand gereageerd op mijn vraag. Ik denk misschien omdat ik te veel gevraagd heb in 1 onderwerp. Uiteraard ben ik er nog steeds zelf mee bezig maar helaas kom ik nu niet meer verder.
Zou iemand van jullie mij willen helpen met een oplossing voor vraag 1 in mijn onderwerp dan kan ik weer verder.

Ik begrijp dat het een gunst is als er mensen zijn die willen helpen en ik ben jullie dan ook zeer dankbaar als ik weer verder kan.

Alvast bedankt.
Eric
 
Beste mensen,

Heb ik misschien iets fout gedaan omdat niemand mij wil helpen ?
Mocht dit zo zijn dan excuses hiervoor.

Groeten,
Eric
 
Beste mensen,

Heb ik misschien iets fout gedaan omdat niemand mij wil helpen ?
Mocht dit zo zijn dan excuses hiervoor.

Groeten,
Eric

Uiteraard niet Eric.

Je hebt er al goed aan gedaan om de vraag in te korten. Ik doneer zo goed als al mijn vrije tijd die ik heb aan Excel forums, dus geduld aub. Of hopen op anderen die je voort helpen...

Wigi
 
Ik heb alvast wat code gefabriceerd waarbij ik jouw code voor het verwijderen van rijen heb geintegreerd:

Code:
Sub Test1()
Dim c As Variant
Dim lngRow As Long
Application.ScreenUpdating = False
Sheets(1).Activate
For Each c In Sheets(1).Range("B5", Range("B5").End(xlDown))
    If Left(c, 3) = "MGR" Then
    c.Offset(0, -1).Value = Format(Mid(Range("B2"), 13, 2) & "-" & Mid(Range("B2"), 15, 2) & "-" & Year(Now()), "mm-dd-yyyy")
    End If
Next

For lngRow = Range("B" & Rows.Count).End(xlUp).Row To 1 Step -1
    If Range("B" & lngRow) = "MGAC" Then
            Rows(lngRow).Delete
    End If
    If Range("B" & lngRow) = "MGAS" Then
            Rows(lngRow).Delete
    End If
Next
ActiveSheet.Name = "IM" & Year(Now()) & Mid(Range("B2"), 13, 4)

Range("B:B").Delete
Range("1:2").Delete
Application.ScreenUpdating = True

End Sub

Aanname: de layout van het oorspronkelijke bestand is altijd hetzelfde, dus de datum is altijd op dezelfde positie terug te vinden!!

Wellicht dat de code nog verbeterd kan worden, maar het werkt.

Groeten,

M.
 
Beste M.

Bedankt voor je code. Het werkt perfect op een klein dingetje na.
De datum die in kolom A komt te staan moet in het voorbeeld 10 januari (10/01) zijn en niet 1 oktober (0110). Dit had ik aangegeven in het eerste gedeelte van mijn vraag, maar misschien heb je dit over het hoofd gezien.
Is dit nog op een gemakkelijke manier aan te passen binnen de macro.

Ik kan nu weer verder.

Nogmaals bedankt,

Eric
 
Beste M.

Mijn vorige reactie met de vraag daarna was te snel. Ik heb de weergave van de datum zelf aan kunnen passen. Er stond in jouw macro "mm-dd-yyyy".
Deze heb ik nu aangepast in "dd-mm-yyyy" en nu is de opmaak wel goed.

Bedankt,
Eric
 
Oke.
Nog een dingetje: in de macro gebruik ik voor de bepaling van het jaar de formule Year(Now). Je moet dan natuurlijk wel oppassen bij jaarovergangen. Als je gegevens uit december 2007 in januari 2008 gaat verwerken, wordt als datum weergegeven 01-12-2008.
Wellicht dat iemand hier nog een oplossing voor heeft.

Groeten,

M.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan