• 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 aanvullen factuur

Status
Niet open voor verdere reacties.

vandenhoeckg

Gebruiker
Lid geworden
14 jan 2017
Berichten
47
Hallo

Ik had een vraagje voor automatisch aanvullen van mijn factuur.

Ik had deze oplossing al gekregen van VenA voor mijn kasticket. Daar werkt het perfect. Maar als ik het nu in mijn factuur heb ingebracht lukt het niet meer zoals het hoort.

Er is eigenlijk maar 1 probleem, als ik mijn artikel in scan moet ik dit 2x scannen eer er aantal 1 komt. Daarna vult hij goed aan naar 2,3,...
Het is dus enkel de eerste keer dat ik dubbel moet scannen.
Ik heb er mij al zot op gezocht maar kan het probleem niet vinden.

Iemand een idee waar het zit?

In bijlage het factuur.Bekijk bijlage Factuur test.xlsb

Dank u wel
 
Laatst bewerkt:
Even een snelle blik.

'Set f1 zal altijd 'nothing' zijn de eerste keer, daar in range("A10:A18") niets staat.
Dan komen we bij 'Set f2':
Als deze een verkeerde waarde bevat krijg je een fout 91 en kun de Excelcode met een bepaalde code weer aan de praat krijgen of Excel opnieuw opstarten.

Laten we er vanuit gaan dat je een goede waarde hebt genomen dan....wordt het netjes gevuld op de laatste kolommen na.
Vul je nogmaals eenzelfde getal in wordt de regel of target weer ongedaan gemaakt, en worden dan pas de gegevens aan de eerste regel toegevoegd.

Test deze abracadabra code eens.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim f As Range, f2 As Range
  If Not Intersect(Target, Range("A19:A56")) Is Nothing And Target.Count = 1 Then
  If Target <> "" Then
  With Application
      .EnableEvents = False
    Set f = Cells(Target.Row, 1).Offset((Target.Row - 11) * -1).Resize(Target.Row - 10).Offset(-1).Find(Target, , xlValues, xlWhole)
    Set f2 = Blad2.Columns(1).Find(Target, , xlValues, xlWhole)
      If f Is Nothing And f2 Is Nothing Then
         Application.EnableEvents = True
         Exit Sub
      ElseIf Not f Is Nothing Then
          Target.Resize(, 7).ClearContents
          f.Offset(, 8) = f.Offset(, 8) + 1
          f.Offset(, 9) = f.Offset(, 7) * f.Offset(, 8)
          .Goto Target
         Application.EnableEvents = True
         Exit Sub
      Else
         Target.Offset(, 8) = Target.Offset(, 8) + 1
         Target.Offset(, 9) = Target.Offset(, 7) * Target.Offset(, 8)
      End If
    .EnableEvents = True
  End With
  End If
 End If
End Sub
 
Ja de scanner geeft een enter na het scannen. Dus ik kom automatisch in de volgende cel.

Normaal werkt de code wel. In het ticket toch. Daar komt er van de eerste scan aantal 1 en telt dan op.
 
Graag gedaan.

Onderstaande coderegel van 'Set f" iets ingekort.
Code:
 Set f = Range("a18").Resize(Target.Row - 18).Find(Target, , xlValues, xlWhole)

Of:
Code:
Set f = Range("a18").Resize(Target.Row - 18).Find(Target, ,-4163, 1)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan