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

On Error GoTo of On Error Resume Next

Status
Niet open voor verdere reacties.

trucker10

Terugkerende gebruiker
Lid geworden
3 dec 2008
Berichten
2.881
Ik krijg het niet voor elkaar om een " On Error GoTo " of " On Error Resume Next " in mijn bestandje in te voeren .
Ik heb voor de chauffeurs een simpel invulblad ( in vba ) gemaakt .
Ze openen het bestandje drukken op de knop " Maak het invulblad " dan moeten ze een cijfer invullen en op OK drukken . Als ze niks invullen en op OK drukken zou ik een resume willen als ze op Annuleren drukken zou ik een end sub ( exit ) willen .
Ik heb al vanalles geprobeert maar loop vast of de sheet is een sneltrein tot rij 65536:eek:
 

Bijlagen

Laatst bewerkt:
Suggestie 1
gebruik voor gebruikersinvoer bij voorkeur een keuzemogelijkheid (combobox, listbox, DTPickercontrol) met slechts geldige keuzes, dan in controle op gebruikersinvoer vaak niet eens meer nodig.

Suggestie2

Code:
Sub blad_opmaak()
    Cells.Interior.ColorIndex = 37
     
    With [Blad1!B5:J36]
        .BorderAround , Weight:=xlMedium
        .Borders(xlInsideVertical).Weight = xlThin
        .Borders(xlInsideHorizontal).Weight = xlThin
        .Interior.ColorIndex = xlNone
    End With
   [Blad1B5:J5] = Split("dag|datum|Rit|Begin|Einde|Pauze 1|Pauze 2|Km|Opmerkingen", "|")
                                                
    Columns("B:C").ColumnWidth = 12
    Columns(4).ColumnWidth = 8
    Columns(9).ColumnWidth = 45
    [Blad1!B6].Activate
End Sub
 
Suggestie 1
gebruik voor gebruikersinvoer bij voorkeur een keuzemogelijkheid (combobox, listbox, DTPickercontrol) met slechts geldige keuzes, dan in controle op gebruikersinvoer vaak niet eens meer nodig.

Suggestie2

Code:
Sub blad_opmaak()
    Cells.Interior.ColorIndex = 37
     
    With [Blad1!B5:J36]
        .BorderAround , Weight:=xlMedium
        .Borders(xlInsideVertical).Weight = xlThin
        .Borders(xlInsideHorizontal).Weight = xlThin
        .Interior.ColorIndex = xlNone
    End With
   [Blad1B5:J5] = Split("dag|datum|Rit|Begin|Einde|Pauze 1|Pauze 2|Km|Opmerkingen", "|")
                                                
    Columns("B:C").ColumnWidth = 12
    Columns(4).ColumnWidth = 8
    Columns(9).ColumnWidth = 45
    [Blad1!B6].Activate
End Sub

@snb , ik ga deze suggestie zeker overwegen , heb je code in de sheet verwerkt en aangepast
Code:
[Blad1[COLOR="Red"]![/COLOR]B5:J5] = Split("dag|datum|Rit|Begin|Einde|Pauze 1|Pauze 2|Km|Opmerkingen", "|")
Alvast bedankt voor de suggestie :thumb:
 
In plaats van steeds met VBA een sheet opmaken, zou ik 1 sheet verbergen en als sjabloon nemen voor een nieuw invoerblad (hoewel ik het gebruik van een userform voor gebruikersinvoer (en daar gaat het hier toch om) zou prefereren. Een nieuw werkblad wordt dan gemaakt (als second best optie) met:

Code:
Private Sub workbook_open()
  Thisworrkbook.sheets("invoersjabloon").copy thisworkbook.sheets(thisworkbook.sheets.count)
End Sub

Bij een userform zou je geen nieuw werkblad hoeven te maken, maar zou je alleen de laatste invoer moeten weghalen:

Code:
Sub start()
  userform1.show
End Sub

Code:
Private sub Userform1_Initialize()
  Thisworkbook.sheets("invoersjabloon").usedrange.offset(1).clearcontents
End Sub

Kijk ook eens hier
 
Laatst bewerkt:
@ snb , Ik zal toelichten wat de bedoeling van het formulier is . Eerder dit jaar maakte ik een ander gelijkaardig formulier met mail functie rechtstreeks aan mijn adres ( bijgevoegd bestandje ), bepaalde chauffeurs konden hier met werken , anderen weer niet en kopieerden en plakten en knipten enz.......... met als resultaat na 2 a 4 maand kwam alles in flarden , ook al was de sheet beveiligd :rolleyes:. Nu wil ik deze opmaak naar hun mailen , zodat ze die kunnen invullen en liefst ingevuld terug mailen , dan kan ik hun bestandje nakijken met de Ctrl +H werken om de tijds notatie op : te krijgen en dan kan ik een copyPaste doen naar mijn database om van daar uit verder te werken qua uren chauffeur en factuur klant .Nu botste ik op mijn vraag stelling , omdat ik chauffeurs heb die mij bellen als ik een pdf bestandje naar hun mail met de vraag " haal die beveiliging daar eens af ik kan het niet openen " een simpel pdf bestandje ! . Met mijn opmaak hoeven ze enkel hun mail met bestandje te houden en mogen ze wissen en knippen en .......... 1 druk op de knop en ze hebben terug hun formulier dat ik ingevuld wil terug krijgen .
Ik waardeer U inzet om me in de goede richting te helpen :thumb: ik doorpluis 80% van U vba code 's , echter begrijp ik er nog maar voor 20% van je korte vb code 's .
 

Bijlagen

Ik ben er bijna uit :) de msg box is redelijk .
Wat kan er nog mis lopen ? Als men 20 opheeft als waarde voor de maand dan zal je de datum binnen 20 maand tezien krijgen .
 

Bijlagen

Code:
StrMaand = Application.InputBox("Vul een cijfer in van 1 tot 12 voor de maand en klik op OK ", "hallo werkende mens")
If StrMaand = False Or [COLOR="Red"]StrMaand > 12 [/COLOR]Then
MsgBox "Ongeldig getal of op knop annuleren geklikt !", 64, "Je klikte op annuleren "
Exit Sub

Mvg

Rudi
 
Rudi , heel erg bedankt ik heb ( had ) nooit in die richting gedacht , ik wilde het eerder gaan zoeken in de " do - loop until " . Nogmaals :thumb::thumb:
 
Is dit niet aardiger ?

Code:
    c0 = "Vul een cijfer in van 1 tot 12 voor de maand en klik op OK "
    c1 = "Hallo " & Application.UserName
    Do
        c2 = Application.InputBox(c0, c1)
        c0 = IIf(c2 = False, "Je klikte op annuleren", "Ongeldig getal; geldige getallen: 1 t/m 12")
    Loop Until (Val(c2) > 0 And Val(c2) < 13)
 
Is dit niet aardiger ?

SNB dat komt persoonlijker over de gebruikers naam in de msgbox :thumb: , nu nog de datum goed krijgen en dan is het af , tenzij ik je code er verkkerd heb ingezet . Ik blijf hangen in de 12de maand 2008 .
 

Bijlagen

Code:
Private Sub cmdKalender_Click()
  c0 = "Vul een cijfer in van 1 tot 12 voor de maand en klik op OK "
  c1 = "Hallo " & Application.UserName
  Do
    c2 = Application.InputBox(c0, c1)
    c0 = IIf(c2 = False, "Je klikte op annuleren", "Ongeldig getal; geldige getallen: 1 t/m 12")
  Loop Until (Val(c2) > 0 And Val(c2) < 13)
    
  [A2] = DateValue(Format(DateSerial(Year(Date), c2, 1)))
  [A2].Resize(DateDiff("d", [A2], DateAdd("m", 1, [A2]))).DataSeries
  Columns(1).NumberFormat = "dddd dd-mm-yyyy"
     
  [A1:H1] = Split("datum|Rit|Begin|Einde|Pauze 1|Pauze 2|Km|Opmerkingen", "|")
  Columns.AutoFit
End Sub
1. Hou het simpel
2. Gebruik de ingebouwde Excel-faciliteiten
3. Kijk ook eens bij distributielijst voor het vervolg.
 
1. Hou het simpel
2. Gebruik de ingebouwde Excel-faciliteiten
3. Kijk ook eens bij distributielijst voor het vervolg.

snb , bedankt voor het verder uitwerken :thumb:. De bovenste ptn 1,2 en 3 zal ik in gedachte houden . Nog een klein vraagje is er een leidraad ( boek ) buiten deze
( "Excel 2003 Bible" "Excel 2003 Power Programming with VBA (Excel Power Programming With Vba)" John Walkenbach; ) die ik me kan aanschaffen ? :rolleyes:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan