abonnement Unibet Coolblue Bitvavo
pi_59672193
Bierkoning voor je 2e vraag, die eerste heb ik echt geen idee wat er gebeurt:

Je moet hiervoor denk ik op zoek gaan naar het groeperen van al je Controls die op die rij horen. Groups kan je namelijk een naam geven, en zo (waarschijnlijk) kopiëren en plakken.
  woensdag 25 juni 2008 @ 13:31:20 #32
14337 BierKoning
Bier 4 Ever!!
pi_59674929
Ik kom er echt niet uit

Ik kan inderdaad via grouping de 4 verschillende checkboxes selecteren en groupen. Dus wanneer ik deze 'groep' copy en paste dan krijg ik 4 nieuwe checkboxes, alleen zijn deze allemaal 'leeg'. Terwijl ik dus wil dat dezelfde VBA-macro van de checkboxRIJ1, nu checkboxRIJ2 wordt, en dat dus rij1 variabelen nu rij2 worden.

Dit opzichzelf is al niet echt makkelijk denk ik.

Los daarvan wil ik dan dus deze 4 checkboxen automatisch plaatsen op een voorgeselecteerde plek. Dit is wel mogelijk van wat ik op het web vond. Alleen moet ik dit nu dan ook nog zo voor elkaar krijgen dat dit OF gebeurd wanneer ik op een knop "NIEUW" klik, OF dat dat gebeurd wanneer ik bijvoorbeeld het eerste veld van een nieuwe rij maak.

Verder zou het dan geweldig zijn wanneer de rest van de dropdown menu's om de algemene data in te voeren ook gelijktijdig aanwezig zou zijn. Met uitzondering van de datum-invoervelden uiteraard.

Waarom ik dit zou graag wil:
1)Om mijzelf een hele hoop werk te besparen, ik verwacht ongeveer een lijst van 150 rows te hebben. Dit komt dus neer op handmatig 150x4 vba checkboxen aan te passen.
2)Om de sheet idiot-proof te maken. Zodat wanneer iemand buiten mij de sheet gebruikt, niks fout kan doen en alleen een nieuwe rij aan te maken en in te vullen.

Ook al kan iemand mij een beetje op weg helpen zou ik al blij zijn!
pi_59675019
Ik zie het niet echt gebeuren dat je zomaar macro's kan krijgen voor je gekopieerde tekst. Ik zou het eens hier proberen:
http://www.mrexcel.com/forum/forumdisplay.php?f=10
  woensdag 25 juni 2008 @ 14:07:09 #34
14337 BierKoning
Bier 4 Ever!!
  woensdag 25 juni 2008 @ 14:25:34 #35
14337 BierKoning
Bier 4 Ever!!
pi_59676393
Een nieuw idee wat ik mij net zat te bedenken:
Is het misschien makkelijker of meer do-able om een vragenlijst in sheet 2 te maken, en dat de informatie die deze vragenlijst krijgt aan antwoorden, weg te schrijven in de database van sheet 1?

Dan tackle ik alleen niet dat de checkboxes al goed staan

Kan ik ook niet een dag als een dolle aan de gang gaan en 2000 checkboxes maken en op de goeie plek zetten, en dan deze 'hiden' zodat mn database dr niet onwijs lelijk uit gaat zien met allemaal ongebruikte checkboxen?
pi_59676963
Je zou eens kunnen kijken naar zelfgeschreven Functions. Je maakt dan een code (een formule zo je wil) met eigen argumenten. Heel simpel voorbeeld:

1
2
3
4
5
6
Function Som(a, b, c as Integer)

x = a + b
Range("A" & c).Value = x

End Function


Dit kan je dan gebruiken om delen van code in te korten, zoals bv zo:
1
2
3
4
5
6
7
8
9
Private Sub Rekenen()

a = Range("B1").Value
b = Range("B2").Value
c = Range("B3").Value

Som(a, b, c)

End Sub

Als je deze Sub runt, pakt hij de waarden uit B1 en B2, telt ze bij elkaar op en zet ze in A1 (als B3 een '1' bevatte).
Hoop dat dat zo een beetje duidelijk is.

Ik heb dit zelf nog NOOIT gebruikt, maar ik denk dat je er wel iets mee kan

Succes.

Edit: zie ook bv http://archive.baarns.com/excel/faq/xd_macr1.asp#5
of
http://en.allexperts.com/(...)x-macro-hide-row.htm

Je kan vanaf andere checkboxes gewoon dezelfde subroutines aanroepen, dit moet je aanpassen in het Macro scherm of via de Properties (volgens mij). Dat scheelt al een hoop. Via de eerste link kan je dan testen wélke button de routine heeft aangeroepen, en op basis daarvan je variabelen aanpassen.
pi_59694127
quote:
Op woensdag 25 juni 2008 10:28 schreef BierKoning het volgende:
Ok ik heb een nogal vervelend probleem nu.

Ik ben weer bezig gegaan met VBA en opzich gaat het niet slecht. Op 1 puntje na..

Wanneer ik de volgende code gebruik:
[ code verwijderd ]

Telt hij netjes 152 dagen bij H2 op en 183 dagen bij I2. So far so good.

Alleen telt hij ook 183 dagen bij de computerdatum op Dit is binnen excel een probleem (ik heb de computerdatum nodig) maar het is ook gewoon algemeen onhandig als je computerdatum +10 jaar is (door het testen)

Weet iemand hoe dit komt?
Als je de variabele "datum" noemt ipv "date" zal het ws. een stuk beter gaan. "Date" is nl. een interne vba functie die de computerdatum opvraagt en schijnbaar ook terug kan schrijven.
Hetzelfde geldt ook voor "time"
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
  vrijdag 27 juni 2008 @ 10:04:26 #38
14337 BierKoning
Bier 4 Ever!!
pi_59725089
Is het mogelijk om op sheet1 binnen een cel een dropdown menu te maken, met data die uit sheet2 komt? Zodoende kan ik drie cellen naast elkaar maken met elk een dropdown menu, naast deze 3 cellen nog 2 cellen handmatig invullen, en dan deze 5 cellen kopieren naar sheet 3.

Ik heb het al geprobeert met data validitation maar die is gebonden aan de gebruikte sheet. Advanced filter kwam ik zelf niet uit, kreeg het niet aan de praat..

Ik wil dit perse op sheet 1, aangezien dit mn data invoer veld is, en sheet 2 en 3 zijn mn databases.

Iemand anders nog een idee om dit op deze manier aan de gang te krijgen?
  vrijdag 27 juni 2008 @ 10:05:25 #39
14337 BierKoning
Bier 4 Ever!!
pi_59725116
Date veranderen in datum werkte perfect trouwens!
pi_59727008
Data validation kan je wel gebruiken cross-sheet als je een Named range gebruikt voor je lijst in Sheet2.

(Range selecteren, Invoegen -> Naam -> Definiëren, óf direct in het witte vak linksboven (waar je celnummer staat) een naam intoetsen en op Enter drukken).

In Data Validation kan je dan kiezen voor Lijst -> =<jenaamhier>

Zo kan je ook dubbele dropdowns maken, die dus afhankelijk van de keuze uit dropdown 1 verandert...erg fijn. Zie hier voor een tutorial
pi_59750112
quote:
Op vrijdag 27 juni 2008 11:17 schreef DaFan het volgende:
Data validation kan je wel gebruiken cross-sheet als je een Named range gebruikt voor je lijst in Sheet2.

(Range selecteren, Invoegen -> Naam -> Definiëren, óf direct in het witte vak linksboven (waar je celnummer staat) een naam intoetsen en op Enter drukken).

In Data Validation kan je dan kiezen voor Lijst -> =<jenaamhier>

Zo kan je ook dubbele dropdowns maken, die dus afhankelijk van de keuze uit dropdown 1 verandert...erg fijn. Zie hier voor een tutorial
Dat is wel een leuk dingetjes zeg dat je afhankelijke dropdown menus kan maken.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_59750385
Ik heb een bestand met 7 werkbladen waarin voornamelijk klantnummers verwerkt staan. Deze sheet gebruik ik voor rapportages maar ook voor follow-ups.
In werkblad 1 plaats ik de dagelijkse dingen, bijvoorbeeld:
Kl.nr.: 1234 | werkzaamheden: bestelling | Datum: 27-06-2008

Nu staan in werkblad 2 allerlei acties voor follow-ups, bijvoorbeeld:
Kl.nr.: 1234 | followup: over drie maanden bellen | Datum: 27-06-2008

Nu wil ik graag dat als ik in werkblad het klantnummer 1234 intik, dat er een melding (of een wijziging in kleur) komt, waardoor ik kan zien dat er al een follow-up bekend is, die dus zou kunnen komen te vervallen omdat deze als door de dagelijkse werkzaamheden is uitgevoerd.

Dus eigenlijk in het kort, in werkblad één voer ik een waarde in (klantnummer) die al in werkblad twee staat. Ik zal dan in werkblad één een melding moeten zien, zodat ik weet dat dezelfde waarde ook al in werkblad twee staat. Is dat mogelijk?
pi_59750493
Heb je een vaste cel waar je dat klantnummer invoert of kan dat elke cel zijn? In situatie 1 is het wel te doen, situatie 2 schier onmogelijk (automatisch = als je m intikt en op Enter ramt).

Wat wel kan, is een knop in Werkblad 1 die je gaat gebruiken om nieuwe klanten toe te voegen (met Prompts of via een Form, whatever) want dan kan je simpeler testen op het ingevoerde klantnummer.
pi_59750615
quote:
Op zaterdag 28 juni 2008 11:59 schreef Deetch het volgende:

[..]

Dat is wel een leuk dingetjes zeg dat je afhankelijke dropdown menus kan maken.
Ja ik leerde dit ook pas 2 maanden terug, scheelt een BERG gezeur met VBA
pi_59750658
quote:
Op zaterdag 28 juni 2008 12:18 schreef DaFan het volgende:
Heb je een vaste cel waar je dat klantnummer invoert of kan dat elke cel zijn? In situatie 1 is het wel te doen, situatie 2 schier onmogelijk (automatisch = als je m intikt en op Enter ramt).

Wat wel kan, is een knop in Werkblad 1 die je gaat gebruiken om nieuwe klanten toe te voegen (met Prompts of via een Form, whatever) want dan kan je simpeler testen op het ingevoerde klantnummer.
Het klantnummer staat altijd in kolom a, in alle sheets. Het is dus een lange rits met klantnummers onder elkaar.
pi_59750907
Ja daar was ik al bang voor

Kijk:
Als jij een nummer toevoegt, is er voor Excel geen manier om te kijken wáár dit is gebeurt (in welke cel). Dit kan wél als het altijd in dezelfde cel is. Je maakt dan een zogenaamde _change event, die elke keer gedaan wordt bij een wijziging in je sheet. (Kort gezegd, die cel wordt gekopieerd ergens ver weg buiten beeld en dan vergeleken met de oude waarde, is deze anders dan weet je dus dat er geknoeid is). Het is nu dus niet te doen om te bepalen óf er een nummer is toegevoegd en wáár (als je dat weet is het nummer bekend, dus kan je testen of hij al in werkblad 2 voorkomt).

Ik moet dit zelf nog even testen, misschien heb ik wel een manier om dit te omzeilen. Máár het is heir inmiddels half 9 dus ik ga even bier drinken en film kijken Misschien vanavond nog, anders morgen! Sorry
pi_59751004
quote:
Op zaterdag 28 juni 2008 12:34 schreef DaFan het volgende:
Ja daar was ik al bang voor

Kijk:
Als jij een nummer toevoegt, is er voor Excel geen manier om te kijken wáár dit is gebeurt (in welke cel). Dit kan wél als het altijd in dezelfde cel is. Je maakt dan een zogenaamde _change event, die elke keer gedaan wordt bij een wijziging in je sheet. (Kort gezegd, die cel wordt gekopieerd ergens ver weg buiten beeld en dan vergeleken met de oude waarde, is deze anders dan weet je dus dat er geknoeid is). Het is nu dus niet te doen om te bepalen óf er een nummer is toegevoegd en wáár (als je dat weet is het nummer bekend, dus kan je testen of hij al in werkblad 2 voorkomt).

Ik moet dit zelf nog even testen, misschien heb ik wel een manier om dit te omzeilen. Máár het is heir inmiddels half 9 dus ik ga even bier drinken en film kijken Misschien vanavond nog, anders morgen! Sorry
Wat niet kan, dat kan niet. Bedankt in ieder geval.
Have fun, proost.
pi_59752897
Ik zal morgen eens kijken voor je, nu nog ff geen zin in

Misschien kan ik er wel een knop bijbouwen die je moet indrukken om een nieuwe klant toe te voegen, + de gegevens, en die dan kijkt.
pi_59767327
Ok Dirkh het is gelukt :)

Ik ga uit van jouw voorbeeld zoals in je post staat. Kort samengevat:

- "Sheet1" is de eerste sheet en bevat de koppen Klantnummer, Werkzaamheden, Datum, waarbij Klantnummer in A1 staat.
- "Sheet2" is de tweede sheet en bevat de koppen Klantnummer, Followup, Datum, Klantnummer wederom in A1.

Ik heb de boel als volgt opgebouwd:
- F1 en G1 zijn hulpcellen. Je kan deze verplaatsen naar twee van de 16 miljoen cellen die je niet gebruikt, pas dan de code aan waar je F1 en G1 tegenkomt
- De formule in F1 is:
1INDEX(A:A,MATCH(9000000000+307,A:A))
of in het Nederlands
1INDEX(A:A;VERGELIJKEN(9000000000+307;A:A))


Jij dient nu nog het volgende te doen:
Ga naar de Visual Basic editor (Alt-F11) vanuit Sheet1, klik in de linkerdropdown in het rechterscherm Worksheet, en in de rechter Change.

Je krijgt dan dit te zien:
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub


Plak hier de volgende code tussen, zodat het er zo uit ziet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Worksheet_Change(ByVal Target As Range)

LastRowB = Sheets("Sheet2").Range("A65536").End(xlUp).Row

With Sheets("Sheet1")
    If .Range("F1").Value <> .Range("G1").Value Then
        NwKlantnummer = .Range("F1").Value
            
        For i = 1 To LastRowB
            If Sheets("Sheet2").Range("A" & i).Value = NwKlantnummer Then
            
                Followup = Sheets("Sheet2").Range("B" & i).Value
                Datum = Sheets("Sheet2").Range("C" & i).Value
                
                MsgBox "Klantnummer al bekend in Sheet2!" & (Chr(13)) & (Chr(13)) & "Datum:  " & Datum _
                & (Chr(13)) & "Actie:  " & Followup, vbOKOnly, "Melding"
            End If
        Next i
    
    .Range("G1").Value = .Range("F1").Value
    End If
End With

End Sub


Als ik nu bijvoorbeeld 1234 intyp in Sheet1, krijg je de volgende melding:


Hoop dat je hier wat aan hebt!
pi_59767689
quote:
Op zondag 29 juni 2008 07:01 schreef DaFan het volgende:
Ok Dirkh het is gelukt

Hoop dat je hier wat aan hebt!
Hier heb ik helemaal wel wat aan. Het werkt precies zoals ik dat wil hebben.
Hardtstikke bedankt!
pi_59772251
Als je nog wat aanpassingen moet hebben kan je nog wel even terugkomen, maar eerst zelf proberen En het was eigenlijk simpeler dan ik dacht

Geen probleem natuurlijk, succes ermee.
  dinsdag 1 juli 2008 @ 11:18:06 #52
62215 qu63
..de tijd drinkt..
pi_59814571
Ok, niet helemaal een code-probleem, maar een opmaak probleem

In een cel staat een tijd. Het totaal aantal uur wat ik gewerkt heb. Dit is dus meestal meer dan 24 als het gaat om een maand. Dat kan je opvangen door [u] te doen ipv u.

Alleen wil ik een aangepaste opmaak, die zoiets weergeeft:
1xx uur en xx minuten

dingen als
1
2
3
4
""[u]" uur en "m" minuten
""&[u]&" uur en "&m&" minuten
[u]" uur en "m" minuten
&[u]&" uur en "&m&" minuten

werken niet.

iemand anders een idee?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  dinsdag 1 juli 2008 @ 14:08:51 #53
14337 BierKoning
Bier 4 Ever!!
pi_59818425
Volgens mij wil ik echt rare dingen Ik ben al een tijd opzoek, en vind wel kleine dingen, maar ik wil het volgende:

Stel ik heb een range van 4 cellen B1 C1 D1 E1. Wanneer ik in deze range B1 invul met data, wil ik dat de datum in A1 wordt opgeteld met 100 dagen. Verder kan C1 alleen worden ingevuld wanneer B1 ook is ingevuld. Is dit het geval, dan moet er 200 dagen bij A1 worden opgeteld. Dus excel moet kijken dat "als(twee cellen ingevuld) dan (tel 200 dagen bij A1). Zo verder bij D1 en E1, bij D1 moeten er al 2 zijn ingevuld en bij E1 3, met respectievelijk 300 en 400 dagen.

Verder, en dit is het moeilijke, moet Excel dus gaan snappen dat wanneer er in rij 1 een cel wordt veranderd, dat hij dan ook de "A" van rij 1 verandert. Wanneer het verhaal van boven opgaat voor B2, C2, D2 en E2 dan moet Excel dus snappen dat dan A2 moet worden veranderd.

Dit scheelt mij dan al gauw 800 checkboxen
pi_59818761
Kan wel, morgen op werk ok? Kan je wel nog even het volgende toelichten:
- Wat kolom A gaan doen op die rij als of B-C-D verandert?
- Kan je geen hulpkolom maken waar de aangepaste datum inkomt? DAt scheelt HEEL veel werk.
- Wat komt er in B1-E1 ?
  dinsdag 1 juli 2008 @ 14:28:48 #55
14337 BierKoning
Bier 4 Ever!!
pi_59818943
quote:
Op dinsdag 1 juli 2008 14:21 schreef DaFan het volgende:
Kan wel, morgen op werk ok? Kan je wel nog even het volgende toelichten:
- Wat kolom A gaan doen op die rij als of B-C-D verandert?
- Kan je geen hulpkolom maken waar de aangepaste datum inkomt? DAt scheelt HEEL veel werk.
- Wat komt er in B1-E1 ?
Je bent echt een held
1) Kolom A (1 tm tot nu toe 180) zijn datums die ik dus met respectievelijk 100, 200, 300, 400 dagen wil verhogen.
2) Een hulpkolom is zeer zeker wel mogelijk (die hide ik dan gewoon)
3) Er komt in die kolommen een certificaatnummer en een datum.
pi_59819030
Ik woon niet Nederland, mar Sydney dus ga zo slapen. Over 24 uur heb je je antwoord wel het is niet zo lastig (kan gewoon met formules).
pi_59826552
quote:
Op zondag 29 juni 2008 14:51 schreef DaFan het volgende:
Als je nog wat aanpassingen moet hebben kan je nog wel even terugkomen, maar eerst zelf proberen En het was eigenlijk simpeler dan ik dacht

Geen probleem natuurlijk, succes ermee.
Gister op het werk een en ander aangepast en het werkt geweldig. Op deze manier voorkom ik dat er twee afspraken of acties elkaar gaan kruisen. Dus nogmaals bedankt.
  dinsdag 1 juli 2008 @ 21:07:28 #58
62215 qu63
..de tijd drinkt..
pi_59827405
quote:
Op dinsdag 1 juli 2008 14:32 schreef DaFan het volgende:
Ik woon niet Nederland, mar Sydney dus ga zo slapen. Over 24 uur heb je je antwoord wel het is niet zo lastig (kan gewoon met formules).
Ik vond het al knap van je dat je om half 6 's morgens begint aan DirkH's probleem
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_59832506
Eerst qu63:

Als je uren in A1:A3 staan:
1=(INT(SUM(A1:A3))*24)+HOUR(SUM(A1:A3))&" uur en "&MINUTE(SUM(A1:A3))&" minuten"

Range aanpassen naar je eigen range


Edit:
Nederlands:
1=(INTEGER(SOM(A1:A3))*24)+UUR(SOM(A1:A3))&" uur en "&MINUUT(SOM(A1:A3))&" minuten"


[ Bericht 18% gewijzigd door DaFan op 02-07-2008 01:25:06 ]
pi_59832575
BierKoning:

A1 is je datum, B1 tot E1 zijn je cellen zoals beschreven, H1 is je hulpkolom en kan verplaatst/hide worden:

Formule voor A1:
1=G2+IF(E2<>"",400,IF(D2<>"",300,IF(C2<>"",200,IF(B2<>"",100,0))))


Nederlands:
1=G2+ALS(E2<>"";400;ALS(D2<>"";300;ALS(C2<>"";200;ALS(B2<>"";100;0))))


Data validation C1:
Custom -> Formule:
1=B1 <> ""


Idem voor D1 en E1 maar dan natuurlijk met C1 en D1.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')