abonnement Unibet Coolblue Bitvavo
pi_57337792
Hoi, ik ben niet zo goed met Excel macro's maar ik heb nu een functie nodig en het is net iets te complex om mijn vraag om te zetten in goede trefwoorden voor Google dus ik hoop dat er hier wat mensen zijn die me uit de brand kunnen helpen.

Ik heb een Excel file met 2 tabbladen. Nu heb ik op tabblad 2 een 'aanvinkbox'. Nu wil ik het eigenlijk zo hebben, dat als ik die box aanvink dat er dan een cel op tabblad 1 groen kleurt. En als het aanvinkboxje niet aangevinkt is moet diezelfde cel rood zijn.

Iemand enig idee hoe ik dit zou moeten doen ...
pi_57368337
Weet iemand of het mogelijk is om bij een cel een datum in te voeren en die te limiteren? Ik wil dat ze in een cel nooit een datum in kunnen voeren die gister, of langer geleden was. Alleen vandaag en de toekomst in dus.
pi_57368883
quote:
Op vrijdag 14 maart 2008 09:16 schreef Thrilled het volgende:
Weet iemand of het mogelijk is om bij een cel een datum in te voeren en die te limiteren? Ik wil dat ze in een cel nooit een datum in kunnen voeren die gister, of langer geleden was. Alleen vandaag en de toekomst in dus.
Je selecteert de cel (bijv B3) en kiest dan in het menu Data voor Validation. Daar kun je de optie custom aanvinken en in de regel formula typ je dan:

1
2
3
=B3>Round(Now(),0)       om data toe te staan van vandaag 0:00
=B3>Round(Now()-1,0)     om data toe te staan vanaf gisteren 0:00
=B3>Date(2008,1,14)      om data toe te staan vanaf 14 jan 2008


Als je NL versie gebruikt:
Round = Afronden
Now = Nu
Date = Datum
, = ; in formules
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_57369310
Ik heb het anders opgelost. Door jou antwoord kwam ik bij Data > Validation ook bij de mogelijkheid om 'Datum' te kiezen. Daar dan de waarde 'groter dan' en in de formule balk =NU() gedaan. Gevolg: foutmelding bij datum eerder dan het huidige tijdstip. Toch bedankt
pi_57373369
quote:
Op woensdag 12 maart 2008 22:17 schreef G-Mart het volgende:
Hoi, ik ben niet zo goed met Excel macro's maar ik heb nu een functie nodig en het is net iets te complex om mijn vraag om te zetten in goede trefwoorden voor Google dus ik hoop dat er hier wat mensen zijn die me uit de brand kunnen helpen.

Ik heb een Excel file met 2 tabbladen. Nu heb ik op tabblad 2 een 'aanvinkbox'. Nu wil ik het eigenlijk zo hebben, dat als ik die box aanvink dat er dan een cel op tabblad 1 groen kleurt. En als het aanvinkboxje niet aangevinkt is moet diezelfde cel rood zijn.

Iemand enig idee hoe ik dit zou moeten doen ...
Anyone?
pi_57373981
1
2
3
4
5
If Sheet2.[naam checkbox].Value = True Then
  Sheet1.Range([cel]).Color = Green
Else
  Sheet1.Range([cel]).Color = Red
End If

Deze moet in een Change event komen van de aanvinkbox.

[ Bericht 4% gewijzigd door DaFan op 14-03-2008 17:33:55 ]
pi_57373991
Ik weet niet 100% zeker of .Color werkt anders moet het iets worden van Background = Green etc maar dat kan je zelf wel vinden neem ik aan
pi_57376153
nevermind

[ Bericht 81% gewijzigd door Deetch op 14-03-2008 15:22:15 ]
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_57376188
doh dubbel

het is weer vrijdag hoor

[ Bericht 63% gewijzigd door Deetch op 14-03-2008 15:22:46 ]
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_57376296
quote:
Op vrijdag 14 maart 2008 13:46 schreef DaFan het volgende:
Ik weet niet 100% zeker of .Color werkt anders moet het iets worden van Background = Green etc maar dat kan je zelf wel vinden neem ik aan
Range("A2").Interior.Color = Green
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_57377445
Heren,

Ik heb een rij met daarin een aantal oplopende datum's. Daar naast een rij met de namen van die dag (maaandag, dinsdag etc...) Nu wil ik een grafiek maken met op de horizontale-as de datums maar dan niet die van de zaterdag. Nu kan ik dat gewoon selecteren, maar ik wil graag dat het automatische gaat zodat ik niet elke maand een hele zooi grafieken moet aanspassen voor hun bereik.
Bij voorbaat dank,
In het verleden behaalde resultaten bieden geen garantie voor de toekomst!
pi_57378413
Als je nou een dynamische naam maakt zoals in dat artikel aangegeven uit je vorige topic?
pi_57378554
quote:
Op woensdag 12 maart 2008 22:17 schreef G-Mart het volgende:
Hoi, ik ben niet zo goed met Excel macro's maar ik heb nu een functie nodig en het is net iets te complex om mijn vraag om te zetten in goede trefwoorden voor Google dus ik hoop dat er hier wat mensen zijn die me uit de brand kunnen helpen.

Ik heb een Excel file met 2 tabbladen. Nu heb ik op tabblad 2 een 'aanvinkbox'. Nu wil ik het eigenlijk zo hebben, dat als ik die box aanvink dat er dan een cel op tabblad 1 groen kleurt. En als het aanvinkboxje niet aangevinkt is moet diezelfde cel rood zijn.

Iemand enig idee hoe ik dit zou moeten doen ...
quote:
Op vrijdag 14 maart 2008 13:19 schreef G-Mart het volgende:

[..]

Anyone?
Ik zag je probleem op mijn stage al en begrijp je 'probleem'.

Wil je als basis een blanco vakje hebben?Dus bij opstarten > blanco, bij aanvinken > groen, uitvinken > rood.

Wat heb je al geprobeerd met macro opnemen?
pi_57378614
Code is al gepost Thrilled
pi_57378827
maar werkt niet bij mij En hij heeft nog niet gereageerd
pi_57378963
Correct maar Deetch heeft de correcte code voor achtergrondkleur gepost Gaat om de opbouw van de code.
Maar volgens mij kan je idd bij het neerzetten van de box ook aangeven ergens in de properties..
pi_57393830
Ik heb nog s gekeken en Thrilled je hebt gelijk ik kreeg het ook niet ana de praat

Je kan het volgende doen: Maak een checkbox, en zet onder Properties -> LinkedCell de cel die je wilt laten veranderen.
Ga dan naar die Cel en ga naar Format -> Conditional Formatting. Daar zet je in:
Formula = [cel] =TRUE
Formula = [cel] = FALSE

True geef je dan groene letters en een groene achtergrondkleur, False geef je rood + rood. Dit om te voorkomen dat er TRUE en FALSE in je cel komt te staan...

Beetje workaround maar ik hoop dat dat een antwoord op je vraag is G-Mart.
pi_57393902
Thanks voor al jullie hulp, ik hoop het later vandaag te kunnen uitproberen, sinds dat ik het heb gepost heb ik er geen tijd meer voor gehad (hele dag vergaderingen, blegh). Ik hoop dat het lukt want zoals ik het nu lees ziet het er vrij complex uit (m'n excel skills zijn niet echt goed). Nogmaals bedankt voor alle hulp in ieder geval .
pi_57448659
Hm, het doet niks. Ik heb het volgende in m'n macro gezet:

1
2
3
4
5
6
7
8
9
10
11
12
13
Sub CheckBox1_Click()
'
' CheckBox1_Click Macro
' Macro recorded 11/03/2008 by Administrator
'

'
    If Sheet2.[naam checkbox].Value = True Then
  Sheet1.Range(["J9"]).Interior.Color = Green
Else
  Sheet1.Range(["J9"]).Intertior.Color = Red
End If
End Sub


Maar er gebeurd dus helemaal niks gek genoeg ..
pi_57449054
typo: Intertior
en ik weet niet of het uitmaakt, maar de range kan je ook gewoon typeren als: Range("B3") dus zonder de brackets [ ]

even fixen en nog een keer kijken

Even voor mij weer een nieuwe schreeuw om hulp

Hoe kan ik in een mailmacro een controle toevoegen of 1 cel is ingevuld (de naam van de melder). Als die cel leeg is mag er niet gemaild worden..

Ook wil ik weten of het uberhaupt mogelijk is om een excel sheet te mailen als pdfbijlage zonder externe programma's of plug/addins. Dus gewoon kaal vanuit excel als pdf in een mail zetten..
pi_57449135
quote:
Op dinsdag 18 maart 2008 11:02 schreef Thrilled het volgende:
typo: Intertior
en ik weet niet of het uitmaakt, maar de range kan je ook gewoon typeren als: Range("B3") dus zonder de brackets [ ]

even fixen en nog een keer kijken

Even voor mij weer een nieuwe schreeuw om hulp

Hoe kan ik in een mailmacro een controle toevoegen of 1 cel is ingevuld (de naam van de melder). Als die cel leeg is mag er niet gemaild worden..

Ook wil ik weten of het uberhaupt mogelijk is om een excel sheet te mailen als pdfbijlage zonder externe programma's of plug/addins. Dus gewoon kaal vanuit excel als pdf in een mail zetten..
Thanks, ik heb de typo gefixed en de brackets weggehaald, maar er gebeurd nog steeds niks helaas ..
pi_57449728
Ik heb je oplossing! tenminste, hij werkt bij mij:

1
2
3
4
5
6
7
8
Sub CheckBox1_Click()

  If Blad1.Range("J9").Value = True Then
     Blad1.Range("K9").Interior.ColorIndex = 4
  Else
     Blad1.Range("K9").Interior.ColorIndex = 3
  End If
End Sub


Bij mij is mijn excel nederlands dus let even op:
Blad1 = Sheet1 (of welke sheet dan ook, hou de namen wel identiek)

Als je 3x blad1 vervangt door sheet1 werkt deze code feilloos de cellen kan je aanpassen natuurlijk. J9 is de cel waar de checkbox naar verwijst, als je deze aanpast moet je ook in de eigenschappen van de checkbox de cel aanpassen
K9 is volledig willekeurig, elke cel kan je selecteren

als de kleuren niet naar je zin zijn moet je de colorindex aanpassen (de 3 en de 4 staan nu voor groen en rood)
http://www.mvps.org/dmcritchie/excel/colors.htm
ff naar onder scrollen en daar staat een kleurenoverzicht

De cel waar TRUE en FALSE (WAAR/ONWAAR) in komt te staan kan je verbergen, dus heb je daar ook geen last van.
pi_57475137
quote:
Op dinsdag 18 maart 2008 11:36 schreef Thrilled het volgende:
Ik heb je oplossing! tenminste, hij werkt bij mij:
[ code verwijderd ]

Bij mij is mijn excel nederlands dus let even op:
Blad1 = Sheet1 (of welke sheet dan ook, hou de namen wel identiek)

Als je 3x blad1 vervangt door sheet1 werkt deze code feilloos de cellen kan je aanpassen natuurlijk. J9 is de cel waar de checkbox naar verwijst, als je deze aanpast moet je ook in de eigenschappen van de checkbox de cel aanpassen
K9 is volledig willekeurig, elke cel kan je selecteren

als de kleuren niet naar je zin zijn moet je de colorindex aanpassen (de 3 en de 4 staan nu voor groen en rood)
http://www.mvps.org/dmcritchie/excel/colors.htm
ff naar onder scrollen en daar staat een kleurenoverzicht

De cel waar TRUE en FALSE (WAAR/ONWAAR) in komt te staan kan je verbergen, dus heb je daar ook geen last van.
Doet hier helaas niks ..

Ik heb m'n macro nu zo staan:

1
2
3
4
5
6
7
8
Sub CheckBox1_Click()

  If Sheet1.Range("J9").Value = True Then
     Sheet1.Range("K9").Interior.ColorIndex = 4
  Else
     Sheet1.Range("K9").Interior.ColorIndex = 3
  End If
End Sub


maar er gebeurt helemaal niks. Misschien overbodige informatie, maar ik heb de checkbox op sheet 2 staan en het groene/rode vlak zou in sheet 1 (de 'voorpagina' moeten verschijnen).

@Thrilled: Zou je me misschien anders je voorbeeld Excel file willen doorsturen, zodat ik die misschien aan kan passen?
pi_57475984
Mogelijke dingen die fout kunnen gaan:
- Je laat waarschijnlijk de macro kijken naar de verkeerde cel, of naar het verkeerde blad.

In de macro zeg je (in jip en janneke taal):
"Als er op Sheet 1 in cel J9 het woordje "True" staat, dan maak je in Sheet 1 cel K9 de kleur groen (4), zo niet dan maak je hem rood
Meer wordt er niet gedefineerd.

- Je laat de checkbox verwijzen naar een verkeerde cel (of je verwijst hem nergens naar).

Bij het aan/uitvinken van een cel krijgt de checkbox een waarde. TRUE voor aangevinkt, FALSE voor uitgevinkt. Als de macro nergens die waarde terug kan vinden weet hij ook niet wanneer hij nou wel of niet een vakje moet in kleuren.

Ik kopieer net jou geplakte macro in een nieuwe excel sheet en ook hier werkt hij weer.. stappenplan:
- Open excel en gooi op Sheet2 ergens een checkbox neer.
- Rechtermuisknop op deze zojuist gemaakte checkbox en kies "Besturingselement Opmaken" (geen idee hoe dit in het engels weergegeven wordt, je moet in ieder geval in het 'eigenschappen' gedeelte komen van de checkbox)
- Hier zie je onderaan een invoerbalk met de tekst: "Link with celll: [ invoerbalk ] en een knopje waarin je een miniatuurweergave ziet van een spreadsheet. Ongeveer
- Klik dát kleine vierkantje aan, nu veranderd het menu in een smalle balk en kan je een cel selecteren. Klik nu eerst op "Sheet 1" en dan bijvoorbeeld op cel J9, nu komt er in die kleine balk Sheet1!$J$9 te staan. Druk 2 maal op enter.

Nu heb je alleen de checkbox laten verwijzen naar die specifieke cel. Als je nu je checkbox uit of aanvinkt komt er op Sheet 1 in cel J9 'TRUE' en 'FALSE' te staan. Als dit niet zo is, moet je het nog een keer proberen..

Nu gaan we de macro er aan toevoegen..
- Druk op Alt + F11 en het Visual Basic venster verschijnt
- in de menubalk bovenaan: Invoegen > Module (Insert > Module)
- Plak daar de volgende code:
1
2
3
4
5
6
7
8
Sub Kleurtjes()

  If Sheet1.Range("J9").Value = True Then
     Sheet1.Range("K9").Interior.ColorIndex = 4
  Else
     Sheet1.Range("K9").Interior.ColorIndex = 3
  End If
End Sub


- Klik op kruisje en nu zit je weer in je excelsheet. Macro is gemaakt, Checkbox is gemaakt.. nu de macro aan de checkbox koppelen..
- Rechtermuisknop op de checkbox en selecteer "Macro toewijzen", in de nederlandse versie is dit de één-na-laatste optie.
- Nu zie je een venster waarin je als het goed is de macro 'kleurtjes' moet zien staan. Selecteer deze, druk op OK en hij moet het doen.

Mocht dit nóg niet lukken, PM me even je mailadres

Let dus even op de verschillen in de taal he.. Sheet = Blad.. cellen kun je aanpassen naar wens. Let wel op dat als je de cel waarnaar de checkbox verwijst wilt veranderen, je ook in de macro de cel moet aanpassen. Hetzelfde met de cel die je in wilt kleuren
pi_57476735
quote:
Op woensdag 19 maart 2008 14:17 schreef Thrilled het volgende:
Mogelijke dingen die fout kunnen gaan:
- Je laat waarschijnlijk de macro kijken naar de verkeerde cel, of naar het verkeerde blad.

In de macro zeg je (in jip en janneke taal):
"Als er op Sheet 1 in cel J9 het woordje "True" staat, dan maak je in Sheet 1 cel K9 de kleur groen (4), zo niet dan maak je hem rood
Meer wordt er niet gedefineerd.

- Je laat de checkbox verwijzen naar een verkeerde cel (of je verwijst hem nergens naar).

Bij het aan/uitvinken van een cel krijgt de checkbox een waarde. TRUE voor aangevinkt, FALSE voor uitgevinkt. Als de macro nergens die waarde terug kan vinden weet hij ook niet wanneer hij nou wel of niet een vakje moet in kleuren.

Ik kopieer net jou geplakte macro in een nieuwe excel sheet en ook hier werkt hij weer.. stappenplan:
- Open excel en gooi op Sheet2 ergens een checkbox neer.
- Rechtermuisknop op deze zojuist gemaakte checkbox en kies "Besturingselement Opmaken" (geen idee hoe dit in het engels weergegeven wordt, je moet in ieder geval in het 'eigenschappen' gedeelte komen van de checkbox)
- Hier zie je onderaan een invoerbalk met de tekst: "Link with celll: [ invoerbalk ] en een knopje waarin je een miniatuurweergave ziet van een spreadsheet. Ongeveer
- Klik dát kleine vierkantje aan, nu veranderd het menu in een smalle balk en kan je een cel selecteren. Klik nu eerst op "Sheet 1" en dan bijvoorbeeld op cel J9, nu komt er in die kleine balk Sheet1!$J$9 te staan. Druk 2 maal op enter.

Nu heb je alleen de checkbox laten verwijzen naar die specifieke cel. Als je nu je checkbox uit of aanvinkt komt er op Sheet 1 in cel J9 'TRUE' en 'FALSE' te staan. Als dit niet zo is, moet je het nog een keer proberen..

Nu gaan we de macro er aan toevoegen..
- Druk op Alt + F11 en het Visual Basic venster verschijnt
- in de menubalk bovenaan: Invoegen > Module (Insert > Module)
- Plak daar de volgende code:
[ code verwijderd ]

- Klik op kruisje en nu zit je weer in je excelsheet. Macro is gemaakt, Checkbox is gemaakt.. nu de macro aan de checkbox koppelen..
- Rechtermuisknop op de checkbox en selecteer "Macro toewijzen", in de nederlandse versie is dit de één-na-laatste optie.
- Nu zie je een venster waarin je als het goed is de macro 'kleurtjes' moet zien staan. Selecteer deze, druk op OK en hij moet het doen.

Mocht dit nóg niet lukken, PM me even je mailadres

Let dus even op de verschillen in de taal he.. Sheet = Blad.. cellen kun je aanpassen naar wens. Let wel op dat als je de cel waarnaar de checkbox verwijst wilt veranderen, je ook in de macro de cel moet aanpassen. Hetzelfde met de cel die je in wilt kleuren
Vet, het werkt nu! Ontzettend bedankt man!

Is er een makkelijke manier om een rij met aanvinkboxjes te maken waarin meteen ook een rij groen/rode vlakken op de voorpagina verschijnt, of moet ik handmatig de macro steeds opnieuw aanmaken en eigenlijk het voorgaande proces steeds herhalen?
pi_57476888
Eindelijk

Nja als je de checkbox steeds kopieert neemt hij steeds dezelfde macro mee. Dus krijg je 10 checkboxes met allemaal dezelfde macro Als jij 10 verschillende checkboxes wil hebben met 10 verschillende vakjes zal je moeten kopieren + aanpassen..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub Kleurtjes1()

If Sheet1.Range("J9").Value = True Then
   Sheet1.Range("K9").Interior.ColorIndex = 4
Else
   Sheet1.Range("K9").Interior.ColorIndex = 3
End If
End Sub

Sub Kleurtjes2()

If Sheet1.Range("J10").Value = True Then
   Sheet1.Range("K10").Interior.ColorIndex = 4
Else
   Sheet1.Range("K10").Interior.ColorIndex = 3
End If
End Sub

Sub Kleurtjes3()

If Sheet1.Range("J11").Value = True Then
   Sheet1.Range("K11").Interior.ColorIndex = 4
Else
   Sheet1.Range("K11").Interior.ColorIndex = 3
End If
End Sub


Bijvoorbeeld

Je zal hier vast wel handigere manieren voor hebben.. arrays ofzo maar weet ik zelf ook te weinig vanaf.. dit werkt gewoon
pi_57476929
quote:
Op woensdag 19 maart 2008 15:00 schreef Thrilled het volgende:
Eindelijk

Nja als je de checkbox steeds kopieert neemt hij steeds dezelfde macro mee. Dus krijg je 10 checkboxes met allemaal dezelfde macro Als jij 10 verschillende checkboxes wil hebben met 10 verschillende vakjes zal je moeten kopieren + aanpassen..
[ code verwijderd ]

Bijvoorbeeld

Je zal hier vast wel handigere manieren voor hebben.. arrays ofzo maar weet ik zelf ook te weinig vanaf.. dit werkt gewoon
Okay, niet ideaal maar ik moet het er maar mee doen. Nogmaals bedankt voor je hulp .
pi_57477397
Tsja ideaal of niet, je zal altijd met het 'probleem' zitten dat je handmatig moet toekennen waar hij zn info vandaan moet halen en waar hij zn output in moet stoppen, daar ontkom je gewoon niet aan. De code kan alleen efficiënter door niet steeds opnieuw een 'if-else' constructie te starten maar mijn kennis is niet goed genoeg om daar een oplossing voor te vinden

en graag gedaan
pi_57477437
Arrays zijn wel geinig maar beetje overbodig bij 10 cijfers omdat het meer werk is om uit te vogelen hoe het precies werkt dan 10x je code te kopïeren.

Als ze allemaal in opeenvolgende cellen staan (of met vaste tussenwaardes) dan kan je met een For-loop gaan werken, scheelt een hoop, maar nog steeds waarschijnlijk veel werk voor je omdat je a) niet weet hoe het moet en wij b) niet weten hoe je sheet eruitziet ( en c) ik heb geen zin om je hele code te herschrijven )

Thrilled over die mail vraag:
Ik denk dat het problematisch wordt PDF te maken en dan te mailen omdat je dan, met de PDF, buiten Excel om moet gaan werken.

Ik ben heel erg uit VB met Excel nu dus ik kan je helaas niet helpen met die vraag over lege cellen. Ik heb zelf wat geprobeerd met [blaat].Value = "" Then en IsEmpty ([variabele]) maar kom er niet uit...sorry.
pi_57477523
quote:
Op woensdag 19 maart 2008 15:29 schreef DaFan het volgende:
Thrilled over die mail vraag:
Ik denk dat het problematisch wordt PDF te maken en dan te mailen omdat je dan, met de PDF, buiten Excel om moet gaan werken.

Ik ben heel erg uit VB met Excel nu dus ik kan je helaas niet helpen met die vraag over lege cellen. Ik heb zelf wat geprobeerd met [blaat].Value = "" Then en IsEmpty ([variabele]) maar kom er niet uit...sorry.
Ik zit nu enkel nog met de PDF-kwestie.
De check voor een leeg veld heb ik zelf (op goed geluk) werkend gekregen

In de mail-macro probeerde ik voor de gein dit:
1
2
3
4
If Range("E25").Value = "" Then
 MsgBox "Vul uw naam in bij de Melder"
 Exit Sub
End If

En dit dan bovenaan de mailmacro gezet en het werkt perfect
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')