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

macro verspringen van cursor na enter

Status
Niet open voor verdere reacties.

AD1957

Verenigingslid
Lid geworden
27 feb 2016
Berichten
2.157
Hallo forumleden,

Als beginner probeer ik een simpele macro in excel aan de praat te krijgen.
De bedoeling is:
cursor staat In Cel C1, na enter moet de cursor verspringen naar Cel A2
Na enter in Cel A2 verspringen naar Cel C2 enz. enz.
Alles alleen voor het celbereik A33:C73

Ik heb de volgende macro gemaakt:

Sub Worksheet_change()
Range("A33:C73").Select
If Target.Column = 3 Then
Cells(Target.Row +1, 1).Select
Elseif Target.Column = 1 Then
Cells(Target.Row, Target.Column + 2).Select
End if
End Sub

Bij starten van de macro krijg ik in de 3e regel (If target.column = 3) de melding "object vereist"

wie kan helpen?
 
Welkom op Helpmij.nl.:)

Ik heb de vraag verplaatst naar de Excel sectie, hier is meer kans op de juiste hulp.
 
Daar heb je geen macro voor nodig.
Beveilig uw werkblad nadat je het bereik A33:A73 en C33:C73 gedeblokkeerd hebt.

Dan springt je cursor afwisselend va kolom 1 naar kolom 3 en terug.
 

Bijlagen

Laatst bewerkt:
Hallo Cobbe,

Bedankt voor jouw reactie, maar dit is niet echt wat ik wil.
Even verder uitleggen dan krijg je een duidelijker beeld:

Het is een werkblad voor het maken van facturen.
Kolom A: artikelnummer
Kolom B: omschrijving
Kolom C: aantal
Kolom D: Bruto prijs

Middels het invullen van het artikelnummer wordt kolom B en D met een zoekfunctie ingevuld.
Echter het is zo dat ik toch ook kolom B en D moet kunnen benaderen (niet alle artikelen staan in mijn zoekmatrix, alleen de meest voorkomende)
Beveiliging van het werkblad is voor mij dus geen optie.

Groet,
Albert
 
Probeer het zo eens.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A33:C73")) Is Nothing Then
  If Target.Column = 1 Then
    Application.Goto Target.Offset(, 2)
  Else
    Application.Goto Target.Offset(1, -2)
  End If
 End If
End Sub
 
En hoe ga je nu de omschrijving aanpassen in kolom B?
 
Hallo HSV en Cobbe,

Macro van HSV werkt, maar..........
Inderdaad Cobbe, als ik ik kolom B iets wil invullen krijg ik een foutmelding.
Deze melding zal ik dus ook wel krijgen als ik iets invul ik kolom D
Is hier nog een oplossing voor?

Groet,
Albert
 
Verander de intersect.
Code:
If Not Intersect(Target, Union(Range("A33:A73"), Range("C33:C73"))) Is Nothing Then
 
Hoi HSV.

macro werkt nu wel, maar nu het volgende probleem

Als ik in kolom B enter moet de cursor naar kolom C , enter naar D, enter naar A

Als ik in Kolom A enter naar kolom C en dan na enter naar kolom A (dit werkt perfect!!)

Zou voor mij perfect zijn als je dit probleem kunt oplossen, mij als leek lukt het gewoon niet.

2e probleem:

is het mogelijk vanuit een formulierbesturingselement "via de gekoppelde cel"
direct een artikelnr. in te vullen in kolom A, dit voor iedere rij.
Voor 1 artikel lukt me dit wel maar verder kom ik niet.

Groet,
Albert


Groet,
Albert
 
Hoi AD1957,

Laat eens aan de hand van een bestandje zien hoever je bent.
 
Hoi Harry,

Alweer een nieuw probleem.
Nu ik de nieuwe macro heb toegevoegd aan de werkmap kan ik de factuur niet meer opslaan als een xlsx in een andere map.
waarschijnlijk moet ik de macro voor het opslaan ook aanpassen.
Mijn andere macro's geven geen problemen.(deze zijn als aparte modules opgenomen)

Het complete exelbestand kan ik niet versturen, groter dan 100kb dus dat gaat niet lukken via dit forum.
Misschien via mail??? weet niet of dat is toegestaan.

Even een frisse neus halen, krijg er een punthoofd van hahahahha
Ik vindt het VBA best wel intrigerend maar weet er gewoon veel te weinig vanaf.

mvg,
Albert
 
Bestanden met macro's moet je opslaan als bestand met macro's.
.xlsm ipv .xlsx.

Sla het bestand voor het plaatsen op het forum maar op als 'binair' (.xlsb).
 
Helaas is mij de vraagstelling niet duidelijk van 14:25 uur Albert.
 
Hoy Harry,

als ik een artikelcode invul in kolom A moet de cursor direct naar kolom C
na het invullen van aantal en enter weer naar Kolom A

Echter:
als het artikel niet in de artikelllijst staat moet ik dit zelf kunnen invullen in kolom B, dan met enter naar kolom C en verder naar Kolom D voor de prijs en dan weer naar Kolom A
hier gaat het steeds fout.


2e vraag:

kan ik vanuit het formulierbesturingselement direct artikelen selecteren en automatisch laten invullen. (gebruik nu nog de knop rechts naast het besturingselement)
Ben er inmiddels achter dat ik deze macro ook direct aan het besturingselement kan koppelen.

Probleem is dat het mij alleen lukt om dit te doen voor bijvoorbeeld cel A33.
weet hier zelf geen oplossing voor.

Groet,
Albert
 
Vraag 1.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Select Case Target.Column
     Case 1
       Application.Goto Target.Offset(, 2)
     Case 2, 3
      Application.Goto Target.Offset(, 1)
     Case 4
      Application.Goto Target.Offset(1, -3)
   End Select
End Sub

Overigens kan je ook gewoon de Enter naar rechts verplaatsen in de opties van Excel.

Vraag 2.
Wordt vraag 1 hiermee dan geheel overbodig.
Ik zou het geheel in een Userform zetten, maar dan moet je blad artikellijst aanpassen zonder die lege rijen.
 
Harry,

Bedankt voor de moeite, heb er weer heel wat bijgeleerd.

Groet,
Albert
 
Hallo forumleden,

Ik heb inmiddels alles in een userform geplaatst en het werkt perfect.

Mocht er iemand interesse hebben dan plaats ik het hele bestand graag op helpmij.

Met dank aan gast0660, waarvan ik heel veel hulp heb gekregen.

Groet,
Albert
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan