Userform onder voorwaarden openen en vullen

Status
Niet open voor verdere reacties.

sb17

Gebruiker
Lid geworden
27 mrt 2015
Berichten
83
Beste mensen,

Hierbij een vraag, ik ben nieuw hier en ben bezig om via vba een userform te openen alleen indien er een rij is geselecteerd tussen rij 12 en rij 220. De gegevens uit kolom B t/m F moeten daarna verschijnen in het userform bovenste tekst vakken. Hierna wil ik handmatig deze geboekte post kunnen splitsen, met controle dat uitgesplitste bedragen opgeteld het zelfde zijn als de geselecteerde rij. Hierna zou dit direct onder de geselecteerde rij ingevoegd moeten worden.

Kan iemand mij hiervoor helpen?

Siebe
 

Bijlagen

  • Proefbestand sb17.xlsm
    34,9 KB · Weergaven: 42
Beetje warrige vraag. Waarom alleen tussen rij 12 en 220? In het voorbeeldje begint de data bij rij 5.

In kolom A zou een boekings-nummer moeten staan maar deze loopt door. Je krijgt een dubbel telling als je de gesplitste data onder de bestaande gegeven zet.

Ik ben niet zo thuis in formulieren maar wel even een opzetje hoe je de data in de eerste regel kan krijgen.
 

Bijlagen

  • Proefbestand sb17.xlsm
    36,9 KB · Weergaven: 33
Heel erg bedankt, het begin is er.

Idd jouw opmerkingen mbt data kloppen is vanaf rij 5 , en indien er geen rij is geselecteerd, blijft formulier leeg, dat is ook geen probleem.
Kolom A zou idd moeten doornummeren terwijl de gegevens uit het formulier onder de geselecteerde boeking ingevoegd zou moeten worden.
Ook zou ik willen voorkomen dat er dubbeltelling is, maar hoe zou ik dit kunnen doen?
Mogelijkheid 1 is om de geselecteerde rij na uitsplitsen te verwijderen en mogelijkheid 2 is om de het bedrag in de geselecteerde rij opnieuw uit te rekenen nadat de uitgesplitste posten zijn ingevuld.
Of is er een betere methode?

Siebe
 
ben wat aan het zoeken gegaan en ben tot volgende gekomen

automatische doornummering in kolom A
controle van gesplits bedrag, in caption komt het totaal van 3 textboxen met bedrag in.
automatisch weghalen van regel die gesplits werd om dubbele boeking te voorkomen.

Wel voor decimalen in textbox het . gebruiken wordt vanzelf behandeld als ,

mvg

Leo
 

Bijlagen

  • Proefbestand sb17 L.xlsm
    37,5 KB · Weergaven: 50
Laatst bewerkt:
Leo, bedankt, alweer een stuk verder, maar volgens mij worden de uitsplitsingen niet tussengevoegd, maar worden andere regels overschreven, dat is niet de bedoeling, er moet denk ik een rij worden ingevoegd per uitsplitsing alvorens we het wegschrijven.( het liefst een kopierij, met kolom b t/m f die vervangen worden door de uitsplitsdata.) Ook moet de datum in uitsplits 1 eigenlijk dezelfde zijn als de oorspronkelijke boeking.
Ik hoop dat je me snapt, ben blij met je meedenken.
 
Hoi Siebe,

meer zo dan ?

mvg
Leo
 

Bijlagen

  • Proefbestand sb17 L2.xlsm
    37,5 KB · Weergaven: 37
Hoi Leo,

Er worden nu nog steeds rijen die onder de geselecteerde rij staan overschreven, terwijl het eigenlijk tussengevoegd moet worden zonder dat ander data wegvalt. De geselecteerde transaktie blijft er nu ook op staan ( dubbeltelling)

Siebe
 
Ja Siebe, alle goeie dingen bestaan uit meer dan 1 :d

nee, had niet door dat eronder nog gegevens konden staan, bij deze worden ze tussengevoegd

mvg
Leo
 

Bijlagen

  • Proefbestand sb17 L3.xlsm
    38,6 KB · Weergaven: 28
Leo,

Idd dit is wat ik wilde bedankt.
Om vergissingen te voorkomen zou het wenselijk zijn de 'gewiste cel' rood te maken, lukt me niet goed, welke code moet ik hier voor gebruiken? ik probeerde achter de "" iets met interior.color, maar dat pakt ie niet?

Siebe
 
was idd iets met interior en color
maar niet enkel na ""

ook bij rijen die nadien ingevoegd worden
maar bij deze gedaan


mvg
Leo
 

Bijlagen

  • Proefbestand sb17 L4.xlsm
    39,8 KB · Weergaven: 39
Leo,

Kom toch nog dingetje tegen wat eigenlijk anders moet, in plaats van een rij in te voegen zou de gesplitste rij gekopieerd moeten worden zodat formules en de rest in kolommen G en volgende niet verloren gaan. Hiermee wordt ws ook de formule in kolom a (waarde is bovenliggende cel +1) behouden. Dit moet ws met CopyRow o.i.d.? Daarna zouden de 5 kolommen B,C,D,E,F overschreven kunnen worden.

Vr gr Siebe
 
Dag Siebe,

bij deze gebeurd invoegen enkel tussen kolommen B en G


edit : die G zal nog naar F veranderd moeten worden, maar dat lukt wel zeker
mvg

Leo
 

Bijlagen

  • Proefbestand sb17 L5.xlsm
    39,8 KB · Weergaven: 32
Laatst bewerkt:
Leo,

Hopenlijk vind je het niet vervelend, maar ik heb de bedoeling ws niet geheel goed uitgelegd.

Rechts van de data(kolom b t/m g) staan nog diverse formules en berekeningen die gelden voor de data, indien rijen gedeeltelijk naar beneden verschuiven staan de formules en oorspronkelijke data niet meer in dezelfde rij. Eigenlijk moet voor het invoegen eerst de geselecteerde transactie-rij gekopieerd worden en daarna de cellen in B t/m F ingevuld/overschreven vanuit het userform.

Groet, Siebe
 
Dag Siebe,

zoiets dan ?


mvg
Leo
 

Bijlagen

  • Proefbestand sb17 L6.xlsm
    40,3 KB · Weergaven: 53
Beste Leo,

Het meeste werkt super, alleen heb ik de formule voor in de caption de berekening van het bedrag aan gepast zodat er afgeteld wordt wat er nog gesplits moet worden, maar het lijkt net of het bedrag dat oorspronkelijk in de te splitsen post staat (met komma ) niet goed gelezen wordt, kunnen we hier wat aan doen? Als er bijv nog 25 ct overblijft staat in de caption al 0.

Siebe
 
Dag Siebe,

is een kleine aanpassing in Sub telop

Code:
Sub telop()

    x1 = x1 + Val(txtBedragUitsplits1.Text)
    x2 = x2 + Val(txtBedragUitsplits2.Text)
    x3 = x3 + Val(txtBedragUitsplits3.Text)
    x4 = x4 + Cells(ActiveCell.Row, 5).Value
    x = x4 - x1 - x2 - x3
    Caption = "Transaktie uitsplitsen                                                                                                                                                              " & x
End Sub

mvg
Leo
 
Leo,

Alles werkt goed, maar het screenupdaten na een transaktie splitsing duurt ca 35 sec, kunnen we dit inkorten?

Siebe
 
Hoi Siebe,

niet echt een idee, hier krijg ik het direct binnen de seconde.
kijk eens of volgende regels nog in je code staan,

aan begin van code Application.ScreenUpdating = False
op einde van code Application.ScreenUpdating = True

mvg

Leo
 
Leo,

In het proefbestand heb ik het ook binnen de sec, maar in het echte bestand wat redelijk uitgebreid is, duurt het een poos, maar dat zal komen door de grootte denk ik?

Siebe
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan