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

In het (ingebouwde)formulier via Sendkey ?? 'Vorige' activeren.

Status
Niet open voor verdere reacties.

Cobbe

Giga Honourable Senior Member †
Lid geworden
19 mei 2007
Berichten
10.099
Wie kan me uitleggen of het überhaupt mogelijk is om na het openen van het ingebouwde formulier en NA drukken 'Nieuw' direct naar 'zoeken - vorige' te gaan.

Het is nl zo dat het formulier steeds na te hebben gekozen voor Nieuw steeds aanbiedt om kolom A in te vullen(nummer) en dat wil ik niet, moet direct naar kolom B.
Hoe kan ik dat opvangen?

Gr. cobbe
 
Heb je een voorbeeld documentje?
 
waarschijnlijk:

Code:
Sub M_snb()
   Sheet1.ShowDataForm
End Sub
 
Ha, ha ik ben dikwijls de eerste die vraagt naar een voorbeeld van de posters..........:o:o


De vraag staat uitgelegd in het bestand.

Bij het sorteren loopt het mis.
 

Bijlagen

Wijzig voor het ID probleem, dit:
.Range("A1:L" & Lrij).Name = "database"

eens in dit:
.Range("B1:L" & Lrij).Name = "database"
 
Laatst bewerkt:
Wat snel in mijn enthousiasme, werkt toch niet naar behoren,

Jammer
 
Laatst bewerkt:
Hierbij maakt het niet uit waar de listobject zich bevindt.
Code:
Sub hsv()
With Worksheets("Data")
  .ListObjects(1).DataBodyRange.Sort .ListObjects(1).DataBodyRange.Cells(1, 2), , , , , , , 1
  Application.Goto .ListObjects(1).DataBodyRange.Offset(, 1)
  CommandBars.FindControl(, 860).Execute
End With
End Sub
 
Dat blijkt wel te werken, heb er dit van gemaakt:

Code:
Sub Cobbe()
With Application
   .ScreenUpdating = False
With Worksheets("Data")
 Lrij = .Range("B1").End(xlDown).Row
  .Cells(Lrij + 1, 1) = .Cells(Lrij + 1, 1).Value
  .ListObjects(1).DataBodyRange.Sort .ListObjects(1).DataBodyRange.Cells(1, 2), , , , , , , 1
  Application.Goto .ListObjects(1).DataBodyRange.Offset(, 1)
    CommandBars.FindControl(ID:=860).Execute
 .Range("A2:L" & Lrij + 1).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
   .ScreenUpdating = True
End With
End Sub

Bedankt voor de hulp.
 
Het blijkt toch helemaal niet te werken.
Heb de macro van HSV en mijn macro in gebouwd en geen
van de 2 werkt zoals het zou moeten.
 

Bijlagen

Wat werkt er niet naar behoren Cobbe.
 
Er wordt steeds naar een ID-nummer gevraagd en dat wil ik vermijden vermits dat ID-nummer via een formule ingevuld wordt.
Het formulier zou moeten beginnen bij 'Naam'
en dat lukt me niet.
 
Misschien met de truc van EdMoor:
Code:
Sub Cobbe()
    With Application
        .ScreenUpdating = False
        With Worksheets("Data")
            Lrij = .Range("B1").End(xlDown).Row
            .Cells(Lrij + 1, 1) = .Cells(Lrij + 1, 1).Value
            .ListObjects(1).DataBodyRange.Sort .ListObjects(1).DataBodyRange.Cells(1, 2), , , , , , , 1
            [COLOR="#FF0000"].ListObjects(1).DataBodyRange.Offset(-1, 1).Name = "Database"[/COLOR]
            CommandBars.FindControl(ID:=860).Execute
            .Range("A2:L" & Lrij + 1).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        End With
        .ScreenUpdating = True
    End With
End Sub
 
Als je op 'Nieuw' klikt is het 'Id' niet zichtbaar.


edit:
Code:
Sub hsv()
With Worksheets("Data")
Application.Goto .ListObjects(1).Range.Offset(, 1)
  CommandBars.FindControl(, 860).Execute
   .ListObjects(1).DataBodyRange.Sort .ListObjects(1).DataBodyRange.Cells(1, 2), , , , , , , 1
End With
End Sub

edit:
vreemd dat het maar een tweetal keren werkte (nu dus niet meer).
 
Laatst bewerkt:
Ik denk dat ik vlugger klaar ben als ik zelf een userform ontwerp.
Want daar heb je tenminste controle over.

Dat ingebouwd formulier is zeer goed voor een strakke database maar als je eigen wensen hebt is het over.
 
Na lang 'vijven en zessen' ben ik toch tot de constatatie gekomen dat dat probleem zoals door mij gesteld niet op te lossen is.
En dus zal ik de vraag maar als onopgelost afsluiten.

Toch iedereen bedankt voor het meedenken.
 
Als je een kolom in het dataform niet wilt zien moet je deze verbergen:
Code:
Sub Cobbe()
    With Blad1.ListObjects(1)
        .ListColumns("ID").Range.EntireColumn.Hidden = True
        Blad1.ShowDataForm
        .ListColumns("ID").Range.EntireColumn.Hidden = False
    End With
End Sub
Voordat je deze procedure uitvoert eerst de range naam "Database" verwijderen! Het Dataform is slim genoeg om de tabel range te herkennen.

Zelf bouwen is het beste, het dataform heeft beperkingen. Bijv met datums.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan