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

Gegevens invulformulier kopiëren

Status
Niet open voor verdere reacties.

Noel Prove

Gebruiker
Lid geworden
16 jul 2006
Berichten
98
Hallo,

Ik moet een tabel maken waar de operatoren alle gegevens i.v.m. stilstanden van een produktielijn
moeten bijgehouden.

Om dit op een universele manier te doen had ik gedacht
aan een invulformulier en database tabel (die achteraf niet meer zichtbaar is).
Ik ben begonnen met het invulformulier te ontwerpen, maar ik heb al direkt een
probleem om de begintijd en de eindtijd samen te stellen en die dan naar de database tabel te
kopiëren. Mijn kennis van vba i.v.m. tijd en datum functies is zeker niet toereikend hiervoor.
Ik weet niet of het via vba haalbaar is om dit op deze manier te doen.

Kan er mij hierbij iemand bij helpen a.u.b. ?
 

Bijlagen

  • Ingave storingen.xlsx
    21,5 KB · Weergaven: 40
Misschien gek, maar heb je aan Microsoft Forms gedacht? (beschikbaar mits jullie Office 365 gebruiken)
 
Noel,

brengt dit je een stapje in de juiste richting?
 

Bijlagen

  • Ingave storingen (hs).xlsx
    20,8 KB · Weergaven: 40
Bedankt voor de support !

Ja, zeker en vast, dat is wat de samenstelling van de begin- en eindtijd betreft.
Maar hoe krijg je die formules in vba zodanig dat die via de knop naar de
tabel worden gekopieerd ?
 
zo?
 

Bijlagen

  • Ingave storingen (hs).xlsm
    29,1 KB · Weergaven: 42
Hallo, Bedankt voor het mailtje.

Ja, prima hoor, precies zoals ik het wou.
Hartelijk dank hiervoor.

Kun je mij ook een woordje uitleg geven.
Bedoeling om ook iets te leren en zelf velden toe te voegen.
Ik zie dat je dus 2 modules en 2 macro's hebt toegevoegd.
Hoe werkt dit ?

Bedankt voor de moeite.
 
Noel,

de modules heb ik gebruikt om e.e.a. te kunnen maken, ze kunnen nu vervallen.
Achter tabblad "Form" staat de code die het werk doet:

Code:
Private Sub cmdSave_Click()
'je wilt gegevens opslaan op tabblad "Database", dat geef je zo aan:
With Sheets("Database")
'zet in kolom A, op de eerste lege regel de startdatum en -tijd
    .Range("A1000000").End(xlUp).Offset(1) = Range("Begin").Value
'zet in kolom B, op de eerste lege regel de einddatum en -tijd
    .Range("B1000000").End(xlUp).Offset(1) = Range("Einde").Value
'zet in kolom C, op de eerste lege regel de bijbehorende tijdsduur
    .Range("C1000000").End(xlUp).Offset(1) = Range("Duur").Value
'maak die tijdsduur op als u:mm
    .Range("C1000000").End(xlUp).NumberFormat = "[h]:mm;@"
End With
'maak de cellen waar de gegevens in stonden leeg
    Range("D8,D11,F11,H11,H8,F8").ClearContents
'selecteer cel D8, klaar voor nieuwe invoer
    Range("D8").Select
End Sub

zie ook de nieuwe bijlage
 

Bijlagen

  • Ingave storingen (hs met uitleg).xlsm
    27,5 KB · Weergaven: 40
Hallo, bedankt voor het mailtje.

Heel erg bedankt voor de uitleg.
Ik heb ondertussen de code toegevoegd die de ontwerptijd
en de naam van de ontwerper automatisch toevoegt aan de tabel.

Ik heb ook geprobeerd om automatisch een regelnummering toe te voegen.
Het werkt wel, doch ik weet niet goed of ik dit correct heb gedaan.
Wil jij dit nog eens checken a.u.b. ?

Bedankt voor de moeite en de support !
 

Bijlagen

  • Ingave storingen (hs met uitleg).xlsm
    30,4 KB · Weergaven: 33
Hoi Noël,

je hebt dat prima gedaan op die manier, maar het kan ook in de macro die de rest van de gegevens in "Database" plaatst. zie bijlage
 

Bijlagen

  • Ingave storingen (met vlgnr).xlsm
    27,1 KB · Weergaven: 37
Thanks voor de support en de goeie raad.
Ik heb hier weer iets bijgeleerd.

De serienummer werkt nu wel maar als er een lijn wordt gewist, dan schuift
de nummering natuurlijk 1 regel op en worden al de andere lijnen aangepast natuurlijk.
Als er dus later gegevens moeten worden opgevraagd, dan bestaat de kans dat de regelnummers
niet meer overeenkomen met de juiste data.
Is het daarom niet beter dat ik dit in een variabele steek, misschien een dom voorstel ?
Graag jouw deskundige mening hierover ?
 
Hoi Noël,

in deze bijlage heb ik van de gegevens in tab "Database" een exceltabel gemaakt.
Dat heeft als voordeel dat de nummering middels een formule kan plaatsvinden en altijd klopt, ook al je naderhand rijen verwijdert.
 

Bijlagen

  • Ingave storingen (automatische nummering).xlsm
    30,7 KB · Weergaven: 41
Als het SerialNo. een soort van ID is dan kan je beter application.max gebruiken. (werkt alleen niet al het hoogste ID verwijderd wordt)

Code:
Private Sub cmdSave_Click()
  With Sheets("Database").ListObjects(1)
    .ListRows.Add.Range.Resize(, 6) = Array(Application.Max(.Range.Columns(1)) + 1, [Begin].Value, [Einde].Value, [Duur], Format(Now, "dddd d/mm/yyyy H:MM:SS"), Application.UserName)
  End With
End Sub
 
Of:
Code:
 .ListRows.Add.Range.Offset(, 1).Resize(, 5) = Array([Begin].Value,............
 
Hallo bedankt allemaal voor de support.

sorry dat ik zo laat reageer op jullie berichten, maar ik ben
een tijdje verplicht werkloos geweest door al die corona toestanden.

Er is ondertussen geopteerd om gebruik te maken van een access database.
dus ik moet dit hoofdstuk hier afsluiten.
Niettemin wil ik jullie hiervoor toch allemaal bedanken.
Het is zeker niet nutteloos geweest, ik heb veel bijgeleerd.

Nu wacht mij een nieuwe uitdaging: starten met access. Ik heb er wel wat ervaring
mee maar het is lang geleden.
Ik zal waarschijnlijk zeker nog jullie hulp nodig hebben om dit te realiseren.
Dus zeker tot later !

Groetjes.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan