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

Automatisch verspringen naar een nieuwe regel

Status
Niet open voor verdere reacties.

ExTrucker

Gebruiker
Lid geworden
16 aug 2008
Berichten
11
Hoi allemaal, ik ben nieuw op dit forum en moet beginnen zoals een hoop andere op dit forum door te zeggen dat inhoudelijk mijn kennis in Exel aardig tekort komt. Ik heb een probleempje met exel. Op het werk heb ik een barcodescanner in een kast gevonden. Eigenlijk is het een pocket pc met scan functie. Na lang prutsen heb ik het apparaat aan de gang en ik kan er inderdaad barcodes mee scannen. Via exel wordt de gescande info getoond. Zover alles ok. Nu wil ik nadat de derde info is gescand en in exel verschijnt dat exel automatisch vooraan op een nieuwe regel begint. Ik heb weleens iets gelezen voordat ik de scanner had dat dit in VBA moet gebeuren. Zoeken op internet heeft nog geen passende oplossing opgelevert. Wellicht dat via dit forum er wel een script voor verzonnen kan worden. Helpmij.
 
Hi exTrucker,

welkom op het forum

Het volgende zou hetgeen je vraagt moeten doen :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C1:C1000")) Is Nothing Then
        Selection.Offset(1, -3).Select
    End If
End Sub

Je moet deze code NIET in een module maar achter het werkblad zelf plakken (rechtsklik op de tab > Programmacode weergeven).

Greetz,

Joske
 
Joske,

Geweldig dat je deze kennis paraat hebt.
Toch doet het niet precies wat ik wilde.
Inderdaad werkt het perfect op het 'grote' Excel.
Echter in de pocket uitvoering geeft Excel een opmerking dat er een synchronisatie moet plaats vinden en dat niet alle info volledig gekopieerd kan worden.
En inderdaad op de pocket werkt het script niet.
Op de pocket heb ik geen mogelijkheid om het script te kopieren aangezien er geen tab- programmacode weergeven is.
Heb je nog opties?
 
EX-Trucker,

Voor zover ik weet werkt VBA niet op de PocketPC versie van Excel.
Dit is een veel beperktere versie van Excel !

Misschien dat andere nog een optie hebben ?

Joske
 
EX-Trucker,

Voor zover ik weet werkt VBA niet op de PocketPC versie van Excel.
Dit is een veel beperktere versie van Excel !

Misschien dat andere nog een optie hebben ?

Joske
Misschien kan je alle cellen van het werkblad blokkeren, behalve b.v. A1 t/m C1000 (aantal rijen wat je nodig zal hebben).Vervolgens het werblad beveiligen.
Nu zal de cursor alleen over de vrijgegeven cellen gaan. Dus als je Tab gebruikt zal de cursor van C1 naar A2 gaan.
 
paul,

Ook voor jou bedankt voor het meedenken.
ik ben nu toch bang dat de beperkingen voor Excel pocket de overhand gaan krijgen.
In excel heb ik inderdaad je voorstel gedaan en dat werkt.
Maar tijdens kopieren naar de pocket pc krijg ik de melding dat een password protected file niet kan worden geconverteerd. Wanneer je de celeigenschappen wijzigt maar niet beveiligd worden de celeigenschappen ook niet gekopieerd.
In excel pocket is het niet mogelijk om het hele werkblad te blokkeren en daarna weer de vrije cellen te deblokkeren. Het is wel mogelijk om het hele werkblad met een wachtwoord te beschermen maar dat heeft geen zin.

Nog tips?
 
paul,

.....
In excel pocket is het niet mogelijk om het hele werkblad te blokkeren en daarna weer de vrije cellen te deblokkeren. Het is wel mogelijk om het hele werkblad met een wachtwoord te beschermen maar dat heeft geen zin.

Nog tips?
De volgorde is:
1) cellen A1 t/m C1000 (oid) vrij geven door: selecteer A1 t/m C1000 >> celeigenschappen >> bescherming >> vinkje bij geblokeerd uitzetten.
2) werkblad beveiligen.

p.s. ik heb helemaal geen ervaring met excel pocket.
 
Paul,

Het probleem is nu juist dat er geen opties in pocket excel zitten om de celeigenschappen te blokkeren. het is of alles selecteren en dan password protected of niets. Maar een collega stelde het volgende voor; zorg dat je alle scans achter elkaar op één rij zet. Na importeren op desktop zou er dan een macro van moeten komen die na iedere derde kolom de gegevens onder elkaar zet. Kan je zoiets maken?
 
Paul,

Het probleem is nu juist dat er geen opties in pocket excel zitten om de celeigenschappen te blokkeren. het is of alles selecteren en dan password protected of niets. Maar een collega stelde het volgende voor; zorg dat je alle scans achter elkaar op één rij zet. Na importeren op desktop zou er dan een macro van moeten komen die na iedere derde kolom de gegevens onder elkaar zet. Kan je zoiets maken?
Daar dacht ik ook al aan. Al weet ik weinig van VBA, maar dat is zeker mogelijk met VBA. Het kan zelfs met een formule die je doortrekt.
 
Okee, is er dan iemand die mij kan helpen met het maken van een macro voor het gevraagde. Ik kom niet verder als dat de macro meer één keer de gevraagde selectie kan verschuiven naar info per 3 rijen maar dan onder elkaar. Maar ik mag toch aannemen dat het makkelijker moet kunnen en dat ik dus niet alle handelingen eerst allemaal moet voordoen n een macro. Graag hulp bij eventueel een formule hiervoor. Dus kortweg gezegd een macro die iedere keer drie rijen (bv D3-E3-F3) cut and paste naar bv A4-B4-C4. Daarna G3-H3-I3 weer naar A5-B5-C5 etc.
 
Ik neem aan dat er nog wel iemand met een VBA oplossing zal komen, maar tot die tijd hier een mogelijkheid met formules. Dit gaat goed zolang de code's op 1 rij staan.
op blad 1 de ingescande code's, op blad 2 de formules om het om te zetten naa 3 kolommen.
 

Bijlagen

Paul,
Deze oplossing kan volgens mij ook wel werken.
Maar zoals ik aangeef in het eerste bericht schiet mijn kennis tekort.
Zou het mogelijk zijn dat je de formule zo aanpast dat de tweede regel wordt gelezen ivm koppen boven het sheet. Dezelfde koppen staan ook boven blad 2. Zelf ben ik al bezig geweest maar krijg iedere keer een foutmelding of hij kopieerd maar één cel.
 
Paul,
Deze oplossing kan volgens mij ook wel werken.
Maar zoals ik aangeef in het eerste bericht schiet mijn kennis tekort.
Zou het mogelijk zijn dat je de formule zo aanpast dat de tweede regel wordt gelezen ivm koppen boven het sheet. Dezelfde koppen staan ook boven blad 2. Zelf ben ik al bezig geweest maar krijg iedere keer een foutmelding of hij kopieerd maar één cel.
Zoiets dan?

Ik heb rij 1 vrij gehouden.
Nu kan hij ook meerdere rijen aan (2 t/m 10). Hiervoor gebruik ik een hulpkolom (E). De formules kan je doortrekken zover als nodig.
Aan het eind van een rij geeft de formule een #VERW!, dit komt omdat dit buiten de index valt. Deze gebruik ik om aan een nieuwe regel te beginnen.
 

Bijlagen

Beste Paul,
Ik heb je laatste suggestie getest maar na het kopieren naar de pocket blijft de sheet waar de formule in hoort te staan leeg. Wanneer ik handmatig de formule intyp op de pocket krijg ik Error in formula maar ik zie geen verschil. Nu zit ik te denken dat deze formule eigenlijk in een macro zou moeten. Wanneer ik de sheet dan naar de desktop stuur kan ik handmatig de macro starten waardoor het onder elkaar zetten moet geschieden, toch? Alleen de formule plakken in een macro werkt niet. Moet dit anders gebeuren of werken de formules niet in een macro?
ALvast weer bedankt.
 
Formules kan je ook met VBA zetten.

Welke formule moet je juist hebben? (ik heb niet de hele topic doorgelezen)
 
Onderstaande code maakt exact dezelfde layout als het voorbeeldbestand van Paul.
Plaats deze in een standaardmodule.

Code:
Sub Omzetten()
    Sheets("Blad2").Select
    Range("A1").Value = "koptekst 1"
    Range("B1").Value = "koptekst 2"
    Range("C1").Value = "koptekst 3"
    Range("A2").Select
    With ActiveCell
        .FormulaR1C1 = "=INDEX(Blad1!R2,1,(ROW()-2)*3+COLUMN())"
        .AutoFill Destination:=Range("A2:C2"), Type:=xlFillDefault
    End With
    Range("A2:C2").AutoFill Destination:=Range("A2:C3"), Type:=xlFillDefault
    Range("A4").Select
    With ActiveCell
        .FormulaR1C1 = "=INDEX(Blad1!R2:R10,R[-1]C5,(ROW()-MATCH(R[-1]C5,R1C5:R[-1]C5,0)-1)*3+COLUMN())"
        .AutoFill Destination:=Range("A4:C4"), Type:=xlFillDefault
    End With
    Range("A4:C4").AutoFill Destination:=Range("A4:C205"), Type:=xlFillDefault
    Range("E1:E3").Value = 1
    Range("E4").Select
    With ActiveCell
        .FormulaR1C1 = "=IF(ISERROR(OR(RC[-4],RC[-3],RC[-2])),R[-1]C+1,R[-1]C)"
        .AutoFill Destination:=Range("E4:E205"), Type:=xlFillDefault
    End With
    Range("A1").Select
End Sub

Mvg

Rudi
 
Laatst bewerkt:
ExTrucker, Ik weet niet of je perse gebruik moet maken van een 'losse barcode lezer', want anders zou een hele simpele en goede mogelijkheid een zogenaamde 'keyboard wedger' zijn. Voor een paar tientjes heb je een barcodelezer in huis die zich gedraagt als een toetsenbord en die je gewoon aansluit op een USB-poort van je PC. Ik werk er zelf al enige jaren met volle tevredenheid mee. Zie deze site (of specifieker deze pagina) voor koopmogelijkheden. Je hebt hiervoor namelijk helemaal geen aparte software oid nodig en kan je dus gewoon in je volledige Excelversie (met alle functionaliteiten) werken.

Groet, Leo
 
Laatst bewerkt:
ExTrucker, Ik weet niet of je perse gebruik moet maken van een 'losse barcode lezer', want anders zou een hele simpele en goede mogelijkheid een zogenaamde 'keyboard wedger' zijn. Voor een paar tientjes heb je een barcodelezer in huis die zich gedraagt als een toetsenbord en die je gewoon aansluit op een USB-poort van je PC. Ik werk er zelf al enige jaren met volle tevredenheid mee. Zie deze site (of specifieker deze pagina) voor koopmogelijkheden. Je hebt hiervoor namelijk helemaal geen aparte software oid nodig en kan je dus gewoon in je volledige Excelversie (met alle functionaliteiten) werken.

Groet, Leo

Beste Ginger,

Ik begrijp dat er andere manieren zijn maar aangezien we de erg dure Symbol MC50 hebben liggen, waarmee we draadloos door diverse gebouwen kunnen werken, zijn de goedkopere uitvoeringen, die een draad hebben geen optie. Toegegeven dat het misschien niet de moeite loont om door te gaan met de pocket pc terwijl je tegen allerlei beperkingen oploopt. Maar het zou zo mooi zijn als het werkte want we hebben er hoesjes bij waardoor je de Symbol ongehinderd aan je riem kan laten hangen. In ieder geval bedankt voor het meedenken.


Onderstaande code maakt exact dezelfde layout als het voorbeeldbestand van Paul.
Plaats deze in een standaardmodule.


Code:
Sub Omzetten()
Sheets("Blad2").Select
Range("A1").Value = "koptekst 1"
Range("B1").Value = "koptekst 2"
Range("C1").Value = "koptekst 3"
Range("A2").Select
With ActiveCell
.FormulaR1C1 = "=INDEX(Blad1!R2,1,(ROW()-2)*3+COLUMN())"
.AutoFill Destination:=Range("A2:C2"), Type:=xlFillDefault
End With
Range("A2:C2").AutoFill Destination:=Range("A2:C3"), Type:=xlFillDefault
Range("A4").Select
With ActiveCell
.FormulaR1C1 = "=INDEX(Blad1!R2:R10,R[-1]C5,(ROW()-MATCH(R[-1]C5,R1C5:R[-1]C5,0)-1)*3+COLUMN())"
.AutoFill Destination:=Range("A4:C4"), Type:=xlFillDefault
End With
Range("A4:C4").AutoFill Destination:=Range("A4:C205"), Type:=xlFillDefault
Range("E1:E3").Value = 1
Range("E4").Select
With ActiveCell
.FormulaR1C1 = "=IF(ISERROR(OR(RC[-4],RC[-3],RC[-2])),R[-1]C+1,R[-1]C)"
.AutoFill Destination:=Range("E4:E205"), Type:=xlFillDefault
End With
Range("A1").Select
End SubMvg

Rudi

Beste Rudi,
Ik zal morgen op het werk kijken of ik de code als macro kan plakken want zoals eerder in mijn bericht aangegeven kan je in de pocket uitvoering van Excel geen VBA importeren/converteren. Ik laat je de uitslag nog weten.
 
Aangezien je toch zinnens bent de pocketfiles te downloaden naar je desktop, waarom dan niet de module met de code exporteren naar de dir waar de files gedownload worden.
Daarna bestand openen > VBEditor openen > module importeren > code uitvoeren. Aangezien je de code toch handmatig wil starten moet je je VBEditor sowieso toch openen. Voordeel is dat je steeds je formules voorhanden hebt en je geen problemen meer hebt met de beperkingen van de pocket.

Mvg

Rudi
 
Beste Rudi,
Helaas ontvang ik volgende foutmelding tijdens het uitvoeren van de code.
Compile error: invalid outside procedure.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan