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

VBA formule voor heel de kolom

Status
Niet open voor verdere reacties.

Djang

Gebruiker
Lid geworden
11 sep 2013
Berichten
99
Hoi ,
voor een programma voor stok telling heb ik de volgende code


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("B2").Value = Range("B2") + Range("A2")
Range("A2").ClearContents

End Sub

Nu zou ik deze formule willen gebruiken voor heel de B kolom of bv van B2 tem B100
 
post dat bestand eens even, op de manier zoals jij een oplossing van je vraag wil krijg je een kringverwijzing.
 
sorry , je voorbeeld zegt weinig zonder een beetje uitleg erbij
 
Misschien kan je hiermee je stokken tellen:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each c In Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row)
  c = c + c.Offset(-1, 0)
      c.Offset(-1, 0).ClearContents
Next

End Sub
 
idd Sorry ,
ik heb hem wel veranderd .
op blad 1 vul je in cell A2 een getal in , In B2 komt nu dat getal te staan en A2 wordt gewist .
Voer je nu in A2 opnieuw een getal in dan zal hij dit optellen met B2.
nu wil ik dat dit gebeurt voor BV A2 tem A50
 
@Cobbe,
jouw macro treedt in werking bij elke klik in het werkblad, dat zal niet de bedoeling zijn denk ik.

@Djang,
onderstaande macro doet wat je wil, maar ik vind het erg gevaarlijk om hem op die manier te gebruiken. Per ongeluk eens klikken in kolom B terwijl dat niet de bedoeling is, is snel gebeurd.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim tr As Integer
If Not Intersect(Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row), Target) Is Nothing Then
tr = Target.Row
Target.Value = Target.Value + Range("A" & tr).Value
Target.Offset(, -1).ClearContents
End If
End Sub
 
Laatst bewerkt:
Dat wordt er niet duidelijker op Djang!
Wat wil je nu bij wat optellen?
 
Zoals gezegd Djang, de vraagstelling zou duidelijker kunnen.
Maar ervan uitgaand dat je in blad de waarden in kolom B bij die van kolom C wil optellen bij selectie van een cel in kolom C, kun je de macro in de bijlage gebruiken. Ikzelf zou die oplossing niet kiezen, want een klik per ongeluk terwijl die niet de bedoeling is, is snel gemaakt.
 
er zijn 2 mogelijkheden

1ste per dag de stok aanpassen , als je verkoop druk je -1bv stok word aangepast word er geleverd druk je BV 3 en dan telt hij bijop .

2de stok ligt niet allemaal op de zelfde plaats bij stok controle kom ik fles A1972 tegen geef dit in maar op een andere plaats kan er ook nog een aantal flessen staan dan geef ik gewoon het aantal dat ik daar tegen kom in en hij telt alles bij elkaar .

Het zou een uitgebreid stok programma moeten worden dus niet alleen wijn maar alle produkten drank , eten enz..

Hoop het iets duidelijker gemaakt te hebben ( en neen alle flessen bijeen leggen is geen optie )

Greetings Jan
 
@Djang,
ik heb de indruk dat mijn vorig bericht jou is ontgaan.
De bijlage daarbij (gistermiddag geplaatst) staat nog altijd vermeld als 'nog niet gedownload'.
Bekijk dat bestand eens en als je er nog vragen over hebt, stel die dan.
 
@ Zapatr : idd gehebt een punt dat dit iets veiliger is , Thanks
Nu zou het wel intresant zijn als ik met 1 knop alles kan uitvoeren , al ik nu iets ingeef in B4 en enter druk moet
ik terug gaan naar C4 om te bevestigen . Dus zou ik alles willen ingeven in B en door 1 handeling toevoegen aan
C.
Ook zou het intresant zijn al we BV in D de datum vd laatste aanpassing zetten .
Ik ga ook een PopUp maken als C in Negatief zou komen
 
Het vorig bericht heb ik verwijderd omdat er met de bijlage het een en ander mis was.
Hierbij een ander bestand.
 
@ Zapatr : ik ben Vba nog aan't leren dus heb ik even geprobeerd de jouwe te analizeren . zou je zo vriendelijk willen zijn een beetje uitleg te geven.

If Not Intersect(Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row), Target) Is Nothing Then
tr = Target.Row
Range("C" & tr).Value = Range("C" & tr).Value + Range("B" & tr).Value
Target.ClearContents



Intersect = hier geef je aan dat je meer dan 1 bereik hebt ?
Range("B2:B" = bereik 1 gaat van B2 tot B einde ?
& Range("A" & Rows.Count = bereik 2 maar waarom A ? ( is dit om het het bereik van B" evenlang te maken als er in A geschreven staan ?
Rows.Count = is dat tel de rijen , in dit geval van A ?
Waarom Range( ),Target ?
Range("C" & tr).Value = Range("C" & tr).Value + Range("B" & tr).Value Waarom &tr
 
Laatst bewerkt:
Intersect = hier geef je aan dat je meer dan 1 bereik hebt ?
Daarmee wordt bepaald bij het wijzigen van welk bereik de macro actief wordt.

Range("B2:B" = bereik 1 gaat van B2 tot B einde ?
Gaat van B2 tot waar er in dezelfde rij in kolom A nog gegevens staan.

& Range("A" & Rows.Count = bereik 2 maar waarom A ? ( is dit om het het bereik van B" evenlang te maken als er in A
geschreven staan ?

Ja, maar je kunt hier evt. ook Range("B" & Rows.Count... nemen, dat hangt af van hoe je blad er uit ziet. Ik ben ervan uitgegaan dat er in kolom B alleen gegevens staan als er in dezelfde rij in kolom A wat staat.

Rows.Count = is dat tel de rijen , in dit geval van A ?
Ja.

Range("C" & tr).Value = Range("C" & tr).Value + Range("B" & tr).Value Waarom &tr
tr is het rijnr. in kolom B waarin je wat heb gewijzigd.
 
@ Zapatr : heeeel fel bedankt , zo kan ik teminste vba leren
 
@ Zapatr : nog even een vraagje .

Range("C" & tr).Value = Range("C" & tr).Value + Range("B" & tr).Value

Range("C" & tr).Value : mag ik dit vertalen als : de waarde van de Cell in C en &tr gebruik je om niet een cell Nr moeten in te vullen BV C10 ?
 
De macro weet op voorhand alleen de kolom waarin er wat gewijzigd wordt (kolom B) maar niet de rij, want er kan op elke willkeurige plaats in kolom B wat gewijzigd worden; daarom kun je daar geen vast getal gebruiken. Dat rijnummer moet de macro wel weten, want je wil immers ook in dezelfde rij ook in de kolommen A en C wat laten gebeuren. Daarom wordt dat rijnummer (waarvan je vooraf niet weet welk nr. het is) aan een variable (tr, afkorting van target.row) toegewezen.
NB: als je de vraag als opgelost beschouwt, markeer ze dan ook als zodanig a.u.b.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan