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

Regel verplaatsen naar tabblad 2

Status
Niet open voor verdere reacties.

Jon12

Gebruiker
Lid geworden
10 apr 2017
Berichten
76
Hallo beste mensen,

Het is even geleden dat ik jullie hulp nodig heb, maar bij deze toch weer een vraag gezien ik VBA begin te begrijpen, maar ik nog erg in de basis zit.

In het bijgevoegde bestand heb ik een voorbeeld gemaakt van een bestand waar ik projecten in bijhoud. In het originele bestand zijn meer kolommen gevuld en zitten er verwijzingen naar andere Excel-bestanden.

Mijn vraag is: hoe kan ik een regel automatisch laten verplaatsen naar tabblad 2, als de waarde in cel g-kolom de waarde 1 bevat?

De waarde 1 wordt getoond met een groene stip (oranje = 2 / rood = 3 en hoger) op basis van de status in cel f-kolom. Zodra de status in de cel f-kolom wordt aangepast en de cel in g-kolom een groene stip wordt (dus waarde 1) dient de regel automatisch naar de eerste vrije regel te verplaatsen. Voor de code kwam ik ergens op onderstaande code uit, maar ik weet nog te weinig (ben nog steeds aan het leren) van VBA om te zien wat ik nog allemaal mis.

Kan iemand mij hier mee helpen?


Code:
Sub move_Row()
If Value("g:g") = 1 Then
Range.EntireRow.Select
Selection.Cut
Sheets("Blad2").Select
ActiveSheet.Paste
End Sub
 

Bijlagen

  • Regel verplaatsen.xlsx
    10,5 KB · Weergaven: 25
Als de waarde in kolom F gewijzigd wordt dan verandert de waarde in kolom G niet. Pas je dit handmatig aan? Een .xlsx bevat geen macro's. Het voorbeeldbestand heeft geen Blad2.
 
Laatst bewerkt:
Hierbij de juiste bijlage.:rolleyes:
 

Bijlagen

  • Regel verplaatsen.xlsm
    16,1 KB · Weergaven: 27
In de module van Blad1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 6 Then
    If Target.Count = 1 And Target.Value = "Afgerond" Then
      Application.EnableEvents = False
      Rows(Target.Row).Copy Sheets("Blad2").Cells(Rows.Count, 1).End(xlUp).Offset(1)
      Rows(Target.Row).Delete
      Application.EnableEvents = True
    End If
  End If
End Sub

De formule in kolom G kan wat eenvoudiger
PHP:
=IF(F2="";"";MATCH(F2;{"Afgerond";"In Uitvoering";"Stagnatie"};0))
 
Mooi formule VenA. Het staat los van de vraag natuurlijk, maar dat is toch weer mooi meegenomen. Ik heb de formule Vergelijken eigenlijk nooit echt gebruikt, dus denk ik daar ook niet aan. Misschien moet ik andere formules ook maar eens onder de loep gaan nemen.

Wat betreft de code runt deze niet automatisch. Wanneer ik in de editor op run klik (f5) krijg ik de vraag om een macronaam toe te wijzen. Mis ik iets?
 

Bijlagen

  • Regel verplaatsen 2.PNG
    Regel verplaatsen 2.PNG
    24,1 KB · Weergaven: 46
Is de volgende code overigens niet voldoende informatie in de editor? Overigens heb ik hier dezelfde issue mee

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Target.Column = 6
    If Target.Value = "Afgerond" Then
      Application.EnableEvents = False
      Rows(Target.Row).Copy Sheets("Blad2").Cells(Rows.Count, 1).End(xlUp).Offset(1)
      Rows(Target.Row).Delete
      Application.EnableEvents = True
    End If
  End If
End Sub
 
Het is allemaal een beetje van wat je wilt. Mijn suggestie gaat uit van het wijzigen van de status in kolom F. De code moet je dan ook plaatsen in de module van Blad1. Het change event zorgt er dan voor dat de actieve rij verplaats wordt naar Blad2 als aan alle voorwaarden voldaan is. Als je periodiek de afgehandelde zaken wil overzetten dan kan het ook. Hoe duidelijkere de vraag hoe eenvoudiger het het antwoord.

Code:
Sub VenA()
  With Sheets("Blad1").ListObjects(1).Range
    .AutoFilter 6, "Afgerond"
    .Offset(1).Copy Sheets("Blad2").Cells(Rows.Count, 1).End(xlUp).Offset(1)
    .Offset(1).EntireRow.Delete
    .AutoFilter
  End With
End Sub
 
Hoi VenA,

Sorry voor de late reactie. De code werkt nu wel, maar alleen wanneer ik via de Editor op run klik. Zou ik hier iets moeten doen met een loop misschien? Heb wat geprobeerd, maar tot zover nog zonder succes.
 
Ik heb geen idee wat de vraag of het probleem is.
 
De eerste code werkt alleen door een macro toe te wijzen.
De tweede code werkt alleen door in de editor op run te drukken.

Wat ik zoek is een code die automatisch werkt. Dus wanneer ik in de F-kolom kies voor Afgerond, dient deze direct naar de tweede tab te verplaatsen. Met de tweede code werkt dit alleen door afgerond te kiezen en dan vervolgens weer opnieuw op Run te klikken in de editor.

Ik vroeg me af of ik dit met een 'loop' in de code moest oplossen? Ik probeer van alles, maar het lukt me tot zover nog niet. Weet jij misschien waar dit aan kan liggen?
 
Sorry, ik heb het al gevonden. Het is een combinatie van beide codes. Zo had ik het nog niet begrepen.

Super bedankt voor de hulp. Kan ik je misschien bedanken met een leuk bierpakketje of iets dergelijks?
 
Toch nog een foutcode....
 

Bijlagen

  • Foutmelding -.PNG
    Foutmelding -.PNG
    27,7 KB · Weergaven: 46
  • Foutmelding.PNG
    Foutmelding.PNG
    21,1 KB · Weergaven: 52
Je moet de codes niet combineren. Het zijn twee verschillende procedures.
 
Los werkte ze ook niet. Ik kom vanavond terug met een nieuw bestandje en een duidelijke vraagstelling. Dat maakt het wat eenvoudiger.
 
Hoi VenA,

In de bijlage dus nogmaals het bestandje. Ditmaal enigszins aangepast. De kolom met rood, oranje en groen is niet meer van belang. Het gaat nu alleen om kolom 7.

Wanneer ik in kolom zeven een willekeurige cel verander in "Ja" dient deze regel automatisch naar het tweede tabblad te verhuizen. Zoals de code er nu uitziet, werkt dit alleen wanneer ik de editor open en op 'run' klik.

Kan de regel direct naar tabblad 2 verplaatsen op het moment dat ik in kolom g "Ja" kies in de gekozen cel?
 

Bijlagen

  • Regel verplaatsen.xlsm
    18,6 KB · Weergaven: 33
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = [COLOR="#FF0000"]7[/COLOR] Then
    If Target.Count = 1 And Target.Value = "[COLOR="#FF0000"]Ja[/COLOR]" Then
      Application.EnableEvents = False
      Rows(Target.Row).Copy Sheets("Blad2").Cells(Rows.Count, 1).End(xlUp).Offset(1)
      Rows(Target.Row).Delete
      Application.EnableEvents = True
    End If
  End If
End Sub
 
Helaas, dit werkt niet. Wanneer ik in de editor op run klik dan wordt gevraagd om een macronaam toe te wijzen. Het is echt de bedoeling om een regel automatisch te verplaatsen op het moment dat "Ja" is gekozen. ... mijn lesboek "aan de slag met VBA" is nog van te laag niveau en mijn kennis dus ook. ..... Ik dank je wel voor de genomen moeite, maar ik wil je niet lastigvallen met een reeks van "het werkt niet".... alsnog erg bedankt voor het meedenken!
 
Staat jouw Application.EnableEvents wel op True?
 

Bijlagen

  • Regel verplaatsen (1).xlsm
    18,9 KB · Weergaven: 28
Het bestand wat jij nu hebt gestuurd doet bij mij hetzelfde. Werkt deze bij jou wel? Dan heeft het inderdaad met een instelling te maken, maar ik krijg het zo niet gevonden.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan