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

Knippen - rij invoegen en plakken en volgende rij

Status
Niet open voor verdere reacties.

Sandra007

Gebruiker
Lid geworden
7 mrt 2020
Berichten
7
Hallo kan iemand mij helpen.
Ik wil een macro maken waarbij ik:
de tekst uit D3 moet knippen en deze moet ik plakken in C4.
Daarvoor moet ik eerst een regel invoegen tussen 3 en 4.
Dit lukt wel. Maar als ik dit dan wil doen voor de volgende regel (5, 6, 7 enz.) dan blijft de macro hangen bij regel 3.

Kan iemand mij helpen?

Groetjes Sandra

Onderstaand heb ik de macro :

Sub invoegen()
'
' invoegen Macro
' invoegen
'
' Sneltoets: Ctrl+z
'
Rows("4:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D3").Select
Selection.Copy
Range("C4").Select
ActiveSheet.Paste
Range("A5").Select
End Sub
 
Als ik begrijp wat je wilt doen zou dit het moeten doen:
Code:
Sub invoegen()
[COLOR="#008000"]    '
    ' invoegen Macro
    ' invoegen
    '
    ' Sneltoets: Ctrl+z
    '[/COLOR]
    Rows("4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("C4").Value = Range("D3").Value
End Sub
 
Zonder voorbeeldbestand wordt het een beetje gissen.
Geen idee wat je mee wilt kopiëren, en er gegevens naast staan.

Ik gok in eerste instantie dat je een rij boven de onderste rij wilt invoegen.

Code:
Sub hsv()
With Cells(Rows.Count, 4).End(xlUp)
 Rows(.Row).Insert ' , xlFormatFromLeftOrAbove
 .Offset(-1, -1) = .Offset(-2).Value
End With
End Sub
 
Hallo kan iemand mij helpen.
Ik wil een macro maken waarbij ik:
de tekst uit D3 moet knippen en deze moet ik plakken in C4.
Daarvoor moet ik eerst een regel invoegen tussen 3 en 4.
Dit lukt wel. Maar als ik dit dan wil doen voor de volgende regel (5, 6, 7 enz.) dan blijft de macro hangen bij regel 3.

Kan iemand mij helpen?

Groetjes Sandra

Onderstaand heb ik de macro :

Sub invoegen()
'
' invoegen Macro
' invoegen
'
' Sneltoets: Ctrl+z
'
Rows("4:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D3").Select
Selection.Copy
Range("C4").Select
ActiveSheet.Paste
Range("A5").Select
End Sub

Als ik begrijp wat je wilt doen zou dit het moeten doen:
Code:
Sub invoegen()
[COLOR="#008000"]    '
    ' invoegen Macro
    ' invoegen
    '
    ' Sneltoets: Ctrl+z
    '[/COLOR]
    Rows("4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("C4").Value = Range("D3").Value
End Sub

Dat klopt, alleen als ik nu ctrl-z bij de volgende regel (rij 5) zet bijv. dan blijft hij bij Rij 3 deze actie uitvoeren in plaats van de volgende regel?
Hoe los ik dat dan op?
 
Kijk dan naar wat HSV plaatste.
 
Zonder voorbeeldbestand wordt het een beetje gissen.
Geen idee wat je mee wilt kopiëren, en er gegevens naast staan.

Ik gok in eerste instantie dat je een rij boven de onderste rij wilt invoegen.

Code:
Sub hsv()
With Cells(Rows.Count, 4).End(xlUp)
 Rows(.Row).Insert ' , xlFormatFromLeftOrAbove
 .Offset(-1, -1) = .Offset(-2).Value
End With
End Sub


Hoi Harry

Ik heb een lijst met gegevens. In kolom C staat een vak en in vak D
staat een cijfer.
Nu moet ik het cijfer wat in vak D staat onder het vak zetten in kolom C.
Zodat ik hem daarna kan transponeren naast elkaar.

Zie voorbeeld hier onder:

Jaarovergang 1
Oriënterende stage
CAD tekenen E en MIT 7
Electriciteitsleer E en MIT 6,7
Engels 6,5
Energietechniek 5,1
Informatietechniek 6,1
Leren Loopbaan & Burgerschap 5,3
 
Knippen en regel lager zetten

Ik heb even een bestandje bijgevoegd hoe het moet was en hoe het moet worden

Ik hoop dat iemand mij kan helpen
 

Bijlagen

Laatst bewerkt:
Zoiets?
Code:
Sub dotch()
Ar = ActiveSheet.UsedRange.Rows.Count
For i = Ar To 2 Step -1
    Rows(i).Insert Shift:=xlDown
Next i
    [D2].Insert Shift:=xlDown
    Range("C:D").SpecialCells(xlCellTypeBlanks).Delete xlShiftToLeft
End Sub
Je krijgt echt niet sneller een antwoord als je de vraag tweemaal stelt.;)
 

Bijlagen

Het invoegen van rijen gaat sneller als je het in 1 keer doet.

Code:
Sub VenA()
  For j = 2 To Cells(Rows.Count, 3).End(xlUp).Row
    c00 = c00 & "," & j & ":" & j
  Next j
  Range(Mid(c00, 2)).Insert
End Sub

Zodat ik hem daarna kan transponeren naast elkaar.
Dat kan ook in 1 keer heb je het invoegen en verplaatsen niet nodig
Code:
Sub VenA1()
  ar = Cells(1).CurrentRegion
  For j = 2 To UBound(ar)
    c00 = c00 & "|" & ar(j, 3) & "|" & ar(j, 4)
  Next j
  x = Split(Mid(c00, 2), "|")
  Cells(1, 10).Resize(, UBound(x) + 1) = x
End Sub
 
Dat zal ongeveer t/m rij 46 goed gaan.
 
Je weet maar nooit. :D

Het resultaat van je code laat ook nog wat te wensen over t.o.v. @Dotchie en het voorbeeldbestand.

Onderstaande zal ook wel wat sneller gaan vermoed ik.

Code:
Sub hsv()
sv = Cells(1).CurrentRegion
ReDim a((UBound(sv) + 1) * 2, 3)
  For i = 2 To UBound(sv)
   For j = 1 To 2
    a(n, 0) = IIf(j = 2, "", sv(i, 1))
    a(n, 1) = IIf(j = 2, "", sv(i, 2))
    a(n, 2) = IIf(j = 2, "", sv(i, 3))
    a(n, 3) = IIf(j = 2, sv(i, 4), "")
    n = n + 1
   Next j
  Next i
Cells(2, 1).Resize(UBound(a), 4) = a
End Sub
 
Beste Hsv en Vena, ik ben iemand van de fortran generatie,jullie zijn jonge patatjes, ik probeer gewoon vraagstellers te helpen, jullie moeten met mij geen concurrentie aan te gaan ,ik bewonder jullie kennis.
 
@gast0660,
https://www.vortech.nl/fortran-leeft/:d

Volgens mij gaan de helpers hier niet de concurrentie aan maar worden er andere mogelijkheden geplaatst waarvan de ene niet perse beter is dan dan de andere. Zo werkt de code van @HSV in #16 niet geheel correct met het gevraagde maar is de insteek alleen een andere methode.
 
Ik ben van de generatie Bedford en Mercedes Benz 1413 Kurzhauber, maar ik heb gisteren lampen gekocht op Wifi die je kan bedienen via de mobiel. :d:d

Ps.
Code:
Sub hsv()
sv = Cells(1).CurrentRegion
ReDim a((UBound(sv) + 1) * 2, 3)
  For i = 2 To UBound(sv)
   For j = 1 To 2
    a(n, 0) = IIf(j = 2, "", sv(i, 1))
    a(n, 1) = IIf(j = 2, "", sv(i, 2))
    a(n, 2) = IIf(j = 2, sv(i, 4), sv(i, 3))
    a(n, 3) = ""
    n = n + 1
   Next j
  Next i
Cells(1, 4).Clear
Cells(2, 1).Resize(UBound(a), 4) = a
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan