Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 13 van 13

Onderwerp: VBA lege Cel kolom A vinden, regel verplaatsen naar boven

  1. #1
    Vraag is opgelost

    VBA lege Cel kolom A vinden, regel verplaatsen naar boven

    Hallo Allemaal,

    Ik zou graag een vba macro maken welke de volgende functie uitvoert.

    - Zoeken van eerste rij waarin geen regels staan (einde van bestand)
    Code:
    Dim LastRow As Long
        LastRow = Sheets("Database").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
    - Zoeken naar regel waar geen waarde staat in kolom A (en die kleiner is dan LastRow)
    - de cellen van deze regel in kolom F, G & H kopieren naar de regel erboven
    - deze regel verwijderen.

    Dit dan voor het gehele bestand.

    Het zit namelijk zo, ik heb regels in een bestand, maar sommige waarden komen niet achter deze regel, maar eronder.
    Deze moet ik dus van eronder, naar erachter kopiëren.

    Ik heb een voorbeeld bestand bijgevoegd welke uitlegt wat mijn wens is. Werkblad 1 is de Input, Werkblad 2 is de output.
    Dit wil ik in een macro en dan ook gewoon op hetzelfde werkblad natuurlijk.

    Hopelijk kunnen jullie mij hierbij helpen!

    Groeten Joost

    Voorbeeld bestand: helpmij-voorbeeldbestand-verplaatsen.xlsx

  2. #2
    Giga Senior Haije's avatar
    Geregistreerd
    24 maart 2009
    Locatie
    Oldenzaal
    Afstand tot server
    ±97 km
    Het zit namelijk zo, ik heb regels in een bestand, maar sommige waarden komen niet achter deze regel, maar eronder.
    Hoe komen die regels in dat bestand en waarom komen sommige waarden niet op de juiste regel?
    Haije
    ___________________________________________________

  3. #3
    Bestand wordt gegenereerd, vanuit een 3D tekenpakket, als een CSV bestand. en heeft voor gaten in profielen nu eenmaal deze instellingen.
    Laatst aangepast door Buchinhoren : 12 januari 2017 om 12:03

  4. #4
    Mega Honourable Senior Member
    Geregistreerd
    19 mei 2007
    Ik denk dat deze te snel door de bocht vliegt, maar het proberen waard:
    Code:
    Sub cobbe()
    Dim cl As Range
    ActiveWorkbook.Sheets(1).UsedRange.SpecialCells(xlCellTypeBlanks).Delete
    End Sub
    Mvgr. & succes, Cobbe

    Heb je een oplossing voor je probleem,
    vergeet dan niet de vraag als opgelost te merken.
    En denk er aan: Zorgen moet je doen, niet maken.

  5. #5
    Bedankt voor de reactie Cobbe,
    Dit is inderdaad een methode om regels te verwijderen die leeg zijn. werkt prima!
    Echter ben ik nu nog opzoek naar een methode om de regels te vinden waarbij kolom A leeg is.
    En om van deze "gevonden" regels bepaalde cellen te knippen/plakken naar een regel er boven.

  6. #6
    Mega Honourable Senior Member
    Geregistreerd
    19 mei 2007
    Dan lukt deze zeker:
    Code:
    Sub cobbe()
    Dim cl As Range
    For Each cl In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
     If cl = "" Then
      cl.Offset(-1, 5).Resize(, 3).Delete Shift:=xlUp
      cl.Resize(, 5).Delete Shift:=xlUp
     End If
    Next
    End Sub
    Mvgr. & succes, Cobbe

    Heb je een oplossing voor je probleem,
    vergeet dan niet de vraag als opgelost te merken.
    En denk er aan: Zorgen moet je doen, niet maken.

  7. #7
    Zoiets?
    Code:
    Sub dotchie()
    Dim i As Long
    Dim toprow As Long
    Application.ScreenUpdating = False
    toprow = 1
    For i = toprow To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(i, 1) = "" Then
        Cells(i, 6).Copy Cells(i, 6).Offset(-1)
        Cells(i, 7).Copy Cells(i, 7).Offset(-1)
        Cells(i, 8).Copy Cells(i, 8).Offset(-1)
        Cells(i, 1).EntireRow.Delete
    End If
    Next i
    Application.ScreenUpdating = True
    End Sub
    MVG,
    Philiep
    Ideale computer, nog uit te vinden: je stopt er je problemen in en ze komen er nooit meer uit.
    De vraag of een computer kan denken is even irrelevant als de vraag of een onderzeeër kan zwemmen.

  8. #8
    Giga Senior Haije's avatar
    Geregistreerd
    24 maart 2009
    Locatie
    Oldenzaal
    Afstand tot server
    ±97 km
    dat zou met deze code kunnen:
    Code:
    Sub herstel()
    aantal = ActiveSheet.UsedRange.Rows.Count
    For t = 1 To aantal
        If [A1].Offset(t) = "" Then
            If [F1].Offset(t) <> "" Then
                Range([F1].Offset(t - 1), [H1].Offset(t - 1)) = Range([F1].Offset(t), [H1].Offset(t)).Value
                [F1].Offset(t).EntireRow.Delete
                aantal = aantal - 1
            End If
        End If
    Next t
    End Sub
    Haije
    ___________________________________________________

  9. #9
    Mega Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Ook een poging

    Code:
    Sub VenA()
    With Blad1
      .Columns(6).Resize(, 3).SpecialCells(2).Offset(-1).Delete
      .Columns(1).SpecialCells(4).EntireRow.Delete
    End With
    End Sub

  10. #10
    Top! werkt perfect

    heb die van dotchiejack gebruikt omdat deze in de totale toepassing het gemakkelijkste was in te passen.

    Bedankt allemaal

  11. #11
    Mega Honourable Senior Member
    Geregistreerd
    2 maart 2013
    omdat deze in de totale toepassing het gemakkelijkste was in te passen.
    Dit maakt mij wel nieuwsgierig. Kan je even uitleggen waarom de andere suggesties moeilijker in te passen zijn?

  12. #12
    Omdat deze oplossing de bron en doel cellen los omschreven heeft.
    In de daadwerkelijke toepassing staan ze niet direct achter elkaar, en dienen ze niet direct achter elkaar geplaatst te worden.
    Hierin kan ik dat dus gemakkelijk in wijzigen/testen.

    De situatie in mijn voorbeeld was een sterk vereenvoudigde weergave van mijn bedoeling.

    Alle oplossingen werken, ik heb ze getest (al werkte de oplossing van Cobbe niet voor een situatie waarin de laatste regel cel A leeg is.)

    Nogmaals, alle hartelijk dank voor het meedenken.

  13. #13
    Mega Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Bedankt voor de terugkoppeling. Een beter voorbeeldbestand had je een veel efficiëntere code opgeleverd dan hetgeen je nu gaat gebruiken

  14. Dit topic is automatisch gesloten omdat er sinds vier maanden niet meer op gereageerd is.

    Indien gewenst kan de topicstarter een verzoek tot heropening indienen.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Aanbiedingen