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

VBA lege Cel kolom A vinden, regel verplaatsen naar boven

Status
Niet open voor verdere reacties.

Buchinhoren

Gebruiker
Lid geworden
5 feb 2016
Berichten
15
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: Bekijk bijlage helpmij-voorbeeldbestand-verplaatsen.xlsx
 
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?
 
Bestand wordt gegenereerd, vanuit een 3D tekenpakket, als een CSV bestand. en heeft voor gaten in profielen nu eenmaal deze instellingen.
 
Laatst bewerkt:
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
 
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.
 
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
 
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
 
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
 
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
 
Top! werkt perfect

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

Bedankt allemaal
 
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?
 
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.
 
Bedankt voor de terugkoppeling. Een beter voorbeeldbestand had je een veel efficiëntere code opgeleverd dan hetgeen je nu gaat gebruiken;)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan