Algemeen http://onlineexcelcursus.nl Mon, 15 Oct 2018 23:29:13 +0000 Joomla! - Open Source Content Management nl-nl Controleer waarde cel 1 bij vullen cel 2 VBA / Gegevensvalidatie http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/controleer-waarde-cel-1-bij-vullen-cel-2-vba-gegevensvalidatie http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/controleer-waarde-cel-1-bij-vullen-cel-2-vba-gegevensvalidatie

 

Ik kreeg recentelijk de volgende vraag: 'Ik wil eigenlijk automatisch een msgbox laten verschijnen als de waarde in cel B1 ingevuld is en cel A1 leeg is. Is dit mogelijk?'

In dit geval ging het er om dat in zijn Excel bestand een werknemersnummer werd ingevuld, zonder dat er een naam van een werknemer ingevuld was!

Ik heb toen 2 mogelijkheden uitgewerkt:

VBA

DOWNLOAD HIER VOORBEELD BESTAND 1

M.b.v. een klein stukje VBA code kunnen we afdwingen dat er gekeken wordt na een 'change' van het werkblad of A2 leeg is en B2 niet, in dat geval wordt er een melding getoond:

 

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Range("B2").Value <> Empty And Range("A2").Value = Empty Then

  MsgBox "vul een naam in!", vbCritical, "waarschuwing"

End If

End Sub

 

Bovenstaande code controleert slechts 1 cel combinatie (A2 / B2). Als we dit uit willen breiden naar bijvoorbeeld 10 regels, vervang dan bovenstaande door:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Dim MyRange As RangeDim currentCellDim nextCellDim i As Integer

 

Set currentCell = Range("A2")

Do While i < 10   

Set nextCell = currentCell.Offset(0, 1)   

If currentCell.Value = Empty And nextCell.Value <> Empty Then    

  MsgBox "vul een naam in!", vbCritical, "waarschuwing"   

End If        

Set currentCell = currentCell.Offset(1, 0)    

i = i + 1

Loop

 

End Sub  

Gegevensvalidatie

DOWNLOAD HIER VOORBEELD BESTAND 2

Een alternatieve manier zonder VBA is het gebruik van Excel gegevensvaldiatie. Ga op de cel staan waar je de validatie op uit wilt laten voeren (in ons voorbeeld B3) en kies op het lint, het tabblad 'GEGEVENS' --> 'Hulpmiddelen voor gegevens' --> 'Gegevens validatie.

Lint gegevensvaldiatie Excel

Bij 'INSTELLINGEN' kiezen we bij 'TOESTAAN' voor 'AANGEPAST' en bij de formule geven we op:

=(EN(EN(ISLEEG(A3)=ONWAAR;ISLEEG(B3)=ONWAAR);LENGTE(B3)>=6))

 Excel gegevens validatie

'Lege cellen negeren' laten we 'uit'.

Met Copy / Paste trekken we dit door naar alle cellen die we willen valideren. Zoals je misschien al hebt gezien controleert deze validatie ook nog of de lengte van de code die we opgeven minimaal 6 posities is!

Als we nu in het voorbeeld bestand een code opgeven zonder naam of een code die < 6 tekens is dan 'triggert' dat de validatie:

Voorbeeld gegevensvalidatie Excel

 

]]>
info@dolesoft.com (Mike Dole) Algemeen Mon, 16 May 2016 12:07:54 +0000
Externe gegevens ophalen via ODBC moeilijk? http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/externe-gegevens-ophalen-via-odbc-moeilijk http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/externe-gegevens-ophalen-via-odbc-moeilijk

Zelfs in deze tijd zie je als je rond kijkt bij bedrijven nog mensen die grote hoeveelheden data aan het overkloppen zijn.  Heel soms is er 1 super user die weet hoe hij / zij vanuit hun ERP systeem een export kan maken naar tekst file en hoe deze in Excel te openen.

In dit item laat ik zien hoe je in een paar stappen (mits je toegang hebt tot de database o.b.v je active directory account of de inloggegevens hebt van een SQL account) externe gegevens uit een SQL sever 2008 database ophaalt!

Stap 1

Ga naar het tabblad Gegevens - Van andere bronnen - Van SQL Server:

 

Stap 2

De wizard gegevensverbinding wordt gestart, vul bij servernaam de naam van de server op waar de SQL database op draait. Staat deze op de pc / server waar je op aan het werk bent gebruik dan de  servernaam localhost, bij aanmeldingsreferenties kies je voor windows verificatie als jouw account rechten heeft of je geeft de SQL naam en het wachtwoord op:

Stap 3

Als je rechten in orde zijn worden alle views en tabellen getoond die in de database staan, kies 1 van de tabellen:

Stap 4

Geef de locatie aan waar je de opgehaalde gegevens wilt plaatsen:

 

Stap 5

Bij de laatste stap zie je een samenvatting van de keuzes die je hebt gemaakt, bij 'type opdracht' zie je TABEL, we kunnen dit aanpassen naar SQL:

 

 

Het voordeel van 'Type opdracht' SQL is dat we een subset aan velden kunnen opgeven en eventueel kunnen joinen naar andere tabellen. Het is bijvoorbeeld mogelijk om met SQL management studio met click / drag & drop je tabellen bij elkaar te harken en de SQL die daar uit voort komt via copy / paste hier te plaatsen:

 

Nog 1 ding wat goed is om te weten is dat als je je query aanpast en bijvoorbeeld extra velden toevoegt deze niet altijd op de plek komen waar jij ze wilt hebben, ze verschijnen dan achteraan de reeds bestaande kolommen. Om dit aan te passen ga je ergens in de tabel op een cel staan en kies je voor 'Gegevens - Eigenschappen', bij de Externe gegevenseigenschappen zet je het vinkje bij 'Sortering / filterin / indeling van kolommen behouden' uit:

 

Eigenlijk is het redelijk eenvoudig om Excel rechtstreeks te laten lezen in de SQL of Oracle database, zonder dat je zoals sommige misschien denken het risico loopt om de data in de database te beschadigen.

Externe gegevens ophalen via Excel gebruikt alleen een Select statement, je database is dus veilig voor users die met Excel connecten. Wat ik wel eens zie is dat de (super) users die ODBC'n op de database zulke complexe queries met complexe joins bouwen dat ze de performance van de database (en dus van je ERP applicatie) nadeling beinvloeden. Op een terminal server zie je dan dat de Excel sessie van Jantje / Pietje 95% CPU in beslag neemt, pas hier voor op!

Meer over de combinatie Excel - SQL vind je hier:

https://www.simple-talk.com/sql/database-adminitration/getting-data-between-excel-and-sql-server-using-odbc--/

]]>
info@dolesoft.com (Mike Dole) Algemeen Thu, 27 Nov 2014 20:33:29 +0000
Gegevensvalidatie met lijst http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/gegevensvalidatie-met-lijst http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/gegevensvalidatie-met-lijst

Om af te dwingen dat de juiste waarden in een cel worden ingevoerd kun je in Excel het beste werken met gegevensvalidatie. Buiten de standaard controles op bijvoorbeeld hele getallen zoals HIER beschreven biedt Excel de mogelijkheid om met keuzelijstjes te werken waarbij de mogelijke waarden beperkt worden door een range / aantal cellen.

Gegevensvalidatie met lijstje

In Office 2010 maken we om dit te realiseren eerst de lijstjes aan die we later willen koppelen aan de validatie, het maakt op zich niet uit waar je deze lijstjes maakt maar meestal worden deze op een ander blad als het hoofdblad (blad1) gedaan, doe dit bijvoorbeeld op blad2:

Lijstje voor gegevensvalidatie

Vervolgens klikken we op de cel waarin we de validatie willen toepassen, klikken op het lint op de tab 'Gegevens' en vervolgens op 'Gegevensvalidatie':

Gegevensvalidatie lint

We kiezen in de drop down box voor 'Lijst':

Gegevensvalidatie met lijst

Let op de vinkjes in 'lege cellen negeren' (bij een lange keuzelijst met lege cellen worden de lege waarden niet meegenomen)!

Klik op het werkblad icoontje in het veld 'Bron' en selecteer de range die je wilt weergeven, staat je lijstje op blad2 'blader' daar dan naar toe.

Gegevensvalidatie met lijst

Download het voorbeeldbestand HIER

]]>
info@dolesoft.com (Mike Dole) Algemeen Tue, 12 Nov 2013 18:33:27 +0000
Eenvoudig adres stickers printen vanuit Excel en Word http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/eenvoudig-adres-stickers-printen-vanuit-excel-en-word http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/eenvoudig-adres-stickers-printen-vanuit-excel-en-word

M.b.v. Excel en Word zijn er honderden stickers te printen waarbij Word de opmaak van de sticker regelt en Excel de gegevens bevat die op de sticker moeten komen, het internet staat bol met info hoe je verzendlijsten moet maken / afdruk samenvoegen starten. Zoek je naar meer informatie hoe je dat kan doen klik dan hier!

Wil je gewoon snel en eenvoudig een A4 met stickers printen voor bijvoorbeeld de kerstkaarten dan heb ik hier de tools kant en klaar!

De stickervellen vind je HIER

Quantore etiket 70x42.4mm 2100 stuks

Download de voorbeeldbestanden HIER!


We zetten deze 2 bestanden (Adressen.xlsx en AdresStickerTemplate.docx) samen in een map.

We hebben een simpele Excel met kolommen Naam - Adres - Postcode - Plaats - Land, het land willen we alleen afdrukken indien het afwijkt van Nederland:

 Voorbeeld adresbestand in Excel

Hier zetten we al onze adressen onder elkaar, alleen als het land afwijkt van Nederland vullen we het in de kolom 'Land' in.

We openen nu het Word bestand AdresStickerTemplate.docx, omdat dit bestand al gekoppeld is krijgen we bij het openen de vraag of we de SQL opdracht Select * from blad1 uit willen voeren, we kiezen JA:

Select from blad1 wilt u doorgaan

Omdat bij het aanmaken van het bestand het pad verwijst naar mijn locatie en deze waarschijnlijk anders heet bij jullie zal Word eerst gaan zeuren dat hij het bestand niet kan openen:

Foutmelding openen afdruk samenvoegen Excel

We halen gewoon het pad weg zodat er alleen nog maar Adressen.xlsx staat:

Pas pad aan bij data link verbindings eigenschappen

Als het Word document geopend is gaan we naar het tabblad 'Verzendlijsten' (1) en klikken op 'Voltooien en samenvoegen' + 'Afzonderlijkse documenten bewerken' (2)

Voorbeeld Word afdruk samenvoegen

(we kunnen ook gelijk voor documenten afdrukken kiezen!)

Onze Excel records worden nu netjes als adres stickers getoond:

Voorbeeld afzonderlijke documenten bewerken

De stickervellen zijn HIER te koop

Gebruik bij vragen en / of opmerkingen het contactformulier en ik kom er z.s.m. op terug!

 

]]>
info@dolesoft.com (Mike Dole) Algemeen Thu, 19 Sep 2013 18:58:26 +0000
Excel sjabloon voor KNVB Wedstrijdformulier stickers / etiketten http://onlineexcelcursus.nl/home/blog/excel-sjabloon-voor-knvb-wedstrijdformulier-stickers-etiketten http://onlineexcelcursus.nl/home/blog/excel-sjabloon-voor-knvb-wedstrijdformulier-stickers-etiketten

Het invullen van alle spelersnamen + KNVB code bij de wedstrijden van mijn zoons zorgde er altijd voor dat ik een kwartier eerder bij de club aanwezig moest zijn. Met het spelersboekje in de hand was ik dan een tijd bezig om alle spelersnamen en codes in te vullen. Nu gebruik ik een Excel bestand waar ik mijn spelers in heb staan, werkt perfect ik heb de etiketten bij de spelerspassen loop de commissiekamer binnen en voordat ik goedemorgen heb gezegd heb ik de 3 stickers op het formulier geplakt!

Op het tabblad spelersinfo geef je de spelersnamen, voorletters, KNVB code en (rug) nummers op. Op het tabblad sticker wordt de volgende formule gebruikt om de KNVB code te 'ontleden' zodat ieder karakter in een aparte cel komt:

=ALS(ISNB(VERT.ZOEKEN(3;SPELERSINFO!$A$6:$F$34;1;ONWAAR));"";DEEL(VERT.ZOEKEN(3;SPELERSINFO!$A$6:$F$34;4;ONWAAR);3;1))

De ISNB formule zorgt ervoor dat we geen #N/B fouten te zien krijgen.

 

Etiketten / stickervellen voor de KNVB wedstrijdformulier stickers zijn HIER te krijgen: Quantore etiket 105x148mm 400 stuks

Voor een paar euro maanden plezier!

Download het Excel bestand voor de KNVB wedstrijdformulier stickers HIER

]]>
info@dolesoft.com (Mike Dole) Algemeen Sun, 08 Sep 2013 19:44:06 +0000
Voorloopnullen behouden bij importeren .csv / tekst bestand in Excel http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/voorloopnullen-behouden-bij-importeren-csv-tekst-bestand-in-excel http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/voorloopnullen-behouden-bij-importeren-csv-tekst-bestand-in-excel

Bij het openen van een .csv bestand met cellen met voorloopnullen heb je het probleem dat Excel de voorloopnullen weghaalt.
Zo had ik een tekst bestand met artikelnummers 00010, 00015, etc waarbij na het openen van het bestand Excel er 10, 15 e.d. van maakte. Wat ik ook probeerde ik kreeg mijn voorloopnullen niet meer terug, erg frustrerend...

Met de volgende workaround behoudt je de voorloopnullen:

  • Open het originele .csv bestand in bijvoorbeeld windows kladblok.
  • Selecteer de tekst met CTRL-A en kies Copy CTRL-C
  • Open een nieuwe lege Excel file
  • Kies Plakken / Paste (CTRL-V)
  • Er verschijnt onderin een pijltje naar beneden met 'plakopties', kies 'Wizard Tekst Importeren gebruiken'

Wizard tekst importeren 1 Wizard tekst importeren 2

  • Stap 1: Kies voor 'Gescheiden' en klik 'volgende'
  • Stap 2: Geef bij scheidingsteken het teken aan waarop de .csv gescheiden is, bijvoorbeeld puntkomma en kies 'Volgende'
  • Stap 3: Selecteer de kolom waarvan je de voorloopnullen wilt behouden en kies bij 'Gegevenstype per kolom' voor 'Tekst' en kies 'Voltooien'
]]>
info@dolesoft.com (Mike Dole) Algemeen Fri, 10 May 2013 20:21:12 +0000
ORA Foutmelding 12154 / 6413 bij ODBC koppelingen naar Oracle vanuit Excel http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/ora-foutmelding-12154-6413-bij-odbc-koppelingen-naar-oracle-vanuit-excel http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/ora-foutmelding-12154-6413-bij-odbc-koppelingen-naar-oracle-vanuit-excel

Als je met een 64bits OS een ODBC koppeling maakt naar Oracle met een Oracle versie die lager is dan 9 heb je grote kans om de volgende foutmeldingen tegen te komen:

ORA-12154: tns could not resolve the connect identifier specified of ORA-6413 connection not open problem Excel / Visual Studio.

Oracle foutmelding ODBC Excel

Dit wordt veroorzaakt doordat de bestanden van Excel maar ook bijvoorbeeld Visual Studio gedeeltelijk in de C:\Program Files (x86) map terrecht komen.
Als je dan vanuit Excel naar de Oracle database wil via bijvoorbeeld ODBC dan raakt de Oracle driver van streek door de haakjes in de padnaam (x86).

Oplossing

Om toch een verbinding op te zetten dien je het programma op te starten met de 8 tekens lange DOS pad naam, bijvoorbeeld  C:\PROGRA~2\MICROS~1\Office12\excel.exe.
Dit pad kun je vinden door in een DOS prompt (Start - uitvoeren - CMD) te navigeren naar de excel map en dan het commando dir/x te geven:

8 karakters lange DOS padnaam

Als we het volledige 8 karakters lange DOS pad gevonden hebben zetten we dit in een snelkoppeling. Let op: Copy / Paste van de gevonden string werkt niet want zodra we dat in de snelkoppeling plakken maakt Windows er weer een (voor ons) nutteloze snelkoppeling van!

Wat we moeten doen is de string in kladblok / notepad plakken, en dit tekstbestand dan opslaan met de extensie .bat. Bijvoorbeeld StartExcelInDOSMode.bat
Als we deze batch file dan op ons bureaublad plaatsen, Excel via deze snelkoppeling opstarten, dan kunnen we probleemloos een ODBC opzetten naar onze Oracle database

 

]]>
info@dolesoft.com (Mike Dole) Algemeen Mon, 22 Apr 2013 17:25:00 +0000
Beschadigde bestanden herstellen / Verloren Excel bestanden http://onlineexcelcursus.nl/tips-trucs/excel-tips-trucs/alle-excel-versies/algemeen/beschadigde-bestanden-herstellen-verloren-excel-bestanden http://onlineexcelcursus.nl/tips-trucs/excel-tips-trucs/alle-excel-versies/algemeen/beschadigde-bestanden-herstellen-verloren-excel-bestanden

Soms kan een Excel-bestand beschadigd raken. Wanneer je het bestand niet meer kunt openen houdt het op: er is dan meestal geen herstel meer mogelijk.Soms staan er nog versies van je Excel bestand in de temp map waar je nog iets mee kunt.
Kies dan Start en type in de uitvoeren / tekst balk %temp% en toest ENTER

Tijdelijke bestanden tonen

Je ziet nu de tijdelijk aangemaakt bestanden, sorteer op 'gewijzigd' om eventueel je beschadigde bestand te vinden.
Heb je het bestand gevonden waarvan je het idee hebt dat dit 1 van je Excel bestanden kan zijn, pas dan de extensie aan van .tmp naar .xlsx / .xls

Tijdelijke bestanden hernoemen

Ik heb wel eens mensen 'een dansje zien doen' door op deze manier een 'verloren' bestand terug te toveren!

Als je het bestand wel kan openen maar er vervolgens weinig mee kan doen probeer dan het volgende:

  • Open het 'beschadigde' bestand.
  • Kies Bestand - Opslaan als.
  • Klik Opslaan als en kies SYLK (Symbolic Link) (*.slk).
  • Klik op Opslaan, bestand afsluiten.

Opslaan als Symbolic Link

Het bestand wordt opgeslagen onder dezelfde naam, maar met de extensie .SLK. Let er wel op dat alleen het actieve werkblad wordt opgeslagen. Heb je meerdere werkbladen dan moeten deze 1 voor 1 opgeslagen worden.
Nadat we alles hebben opgeslagen kiezen we:

  • Bestand - Openen.
    Verander onderin bij Bestandstype de keuze naar Alle bestanden of SYLK-bestanden.
  • Selecteer het eerder opgeslagen .SLK-bestand en open dit.
  • Sla het zojuist geopende bestand nu op als 'gewoon' Excel bestand.

Op deze manier heb je het bestand als het ware geconverteerd van SYLK naar Excel en zo eventuele corrupte data verwijderd. Het is wel zaak om nu te kijken wat er over is gebleven van je originele bestand. Vooraal macro's, opmaak en afbeeldingen willen nog wel eens verloren gaan.

]]>
info@dolesoft.com (Mike Dole) Algemeen Sun, 10 Feb 2013 20:29:00 +0000
Werken met werkruimten http://onlineexcelcursus.nl/tips-trucs/excel-tips-trucs/alle-excel-versies/algemeen/werken-met-werkruimten http://onlineexcelcursus.nl/tips-trucs/excel-tips-trucs/alle-excel-versies/algemeen/werken-met-werkruimten

Een handige en veel te weinig gebruikte optie in Excel is werkruimte. In een werkruimte kun je de status van alle geopende werkbladen bewaren. Je kunt de volgende dag dan direct weer verder waar je gebleven was. Werkruimten zijn vooral nuttig als je meerdere werkbladen tegelijk gebruikt.

Handel als volgt:

  • Open alle  Excel bestanden waar je in wilt werken.

Excel 2003

  • Kies Bestand >> Werkruimte opslaan.

Excel 2007 - Excel 2010

  • Kies in het lint 'BEELD' - Werkruimte opslaan.

 

  • De standaard werkruimtenaam is Hervat.xls. Wijzig deze naam indien nodig en klik op Opslaan.
  • Sluit Excel af.

Kies de volgende keer dat je Excel weer gaat gebruiken uit de lijst van laatst geopende bestanden de optie hervat.xlw.

Werkruimte opslaan

Alle werkbladen en hun positie op het scherm worden weer tevoorschijn getoverd. Je kunt verder waar je de vorige keer gebleven bent.
De Werkruimte bevat informatie over de werkbladen, maar niet de werkbladen zelf. Deze blijven op de normale plaats opgeslagen. De bestandsextensie van een werkbladbestand is .XLW (exceL Workspace).

]]>
info@dolesoft.com (Mike Dole) Algemeen Sun, 10 Feb 2013 20:19:52 +0000
Venster Controle http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/venster-controle http://onlineexcelcursus.nl/home/excel-tips-trucs/alle-excel-versies/algemeen/venster-controle

Om een aantal ver uit elkaar liggende cellen in een groot werkblad blijvend in de gaten te houden, is de functie Controle gemaakt. Je gebruikt deze functie als volgt:

Excel 2003


1) Rechtsklik op een cel die je in de gaten wenst te houden en kies Controle toevoegen.
Venster controle toevoegen

Het dialoogvenster Venster Controle verschijnt. Hierin zie je de naam van de map en het werkblad, de celaanduiding, de waarde en - indien aanwezig - de formule.
2)  Het venster zelf blijft geopend en op zijn plaats staan, zelfs als je door het werkblad schuift of naar andere werkbladen gaat. Je kunt de waarden van de te controleren cellen dus steeds in de gaten houden.
Venster controle toevoegen
3) Om de controle op een cel op te heffen, selecteer je deze in het venster en kies je Controle verwijderen. Je kunt ook rechts klikken op de desbetreffende cel en kiezen voor Controle verwijderen.

Excel 2007 / 2010

1) Tabblad Formules

2) Venster controle

3) Controle toevoegen

4)Selecteer de cellen die je wilt controleren

 Venster controle toevoegen

 

 

]]>
info@dolesoft.com (Mike Dole) Algemeen Sun, 10 Feb 2013 19:33:58 +0000