Ga naar inhoud

Excel op zee


Aanbevolen berichten

[faqmanvraag=Jan van der Kruyk] Ik werk op mijn schip met een aantal Excel-bestanden die ik elke nieuwe reis vervang door een sjabloon die ik voor elk Excel-bestand heb gemaakt. Dat vervangen gaat trouwens automatisch door middel van een macro die ik daarvoor heb gemaakt. Nu mijn probleem: in die werkmappen zitten ook weer macro's die ik kan bedienen met behulp van een knop die ik daarvoor heb gemaakt, maar nu komt mijn probleem. Als ik dus zo'n nieuw bestand [sjabloon] open en opsla onder de naam waarmee er in Excel wordt gewerkt dan zijn de macro's niet beschikbaar, omdat er dan bij bijvoorbeeld van het sjabloon Sch81 Catch (Marokko) eerst als hij voor de eerste keer geopend wordt de naam Sch81 Catch (Marokko)1 krijgt en zo ook de knoppen van de macro's in dat bestand zoekt naar die naam met die 1 erachter, terwijl er in dat bestand alleen macro's staan met de naam Sch81 Catch (Marokko), dus zonder die 1. Hoe los ik dit op? [/faqmanvraag]
[faqmanantwoord] Als FAQman weet ik vrij veel, maal als het op Excel aankomt is onzer Wim de Groot natuurlijk de echte kenner, dus ik ben even bij hem te rade gegaan. Het volgende antwoord is dus aan hem te danken. Allereerst: als het sjabloon voor de eerste keer wordt geopend, krijgt het bestand de naam Sch81 Catch (Marokko)1 terwijl er in dat bestand macro's staan die werken met de naam Sch81 Catch (Marokko), dus zonder die 1. Om die extra 1 weg te halen, voeg je aan het begin van de bestaande code de volgende regels toe: Positie = InStr(ThisWorkbook.Name, ".xlsm") If Mid(ThisWorkbook.Name, Positie - 1, 2) = "1." Then NieuweNaam = Left(ThisWorkbook.Name, Positie - 2) & ".xlsm" ThisWorkbook.SaveAs NieuweNaam End If De eerste regel zoekt op welke plek in de naam van het bestand het stukje ".xlsm" begint. In de bestandsnaam "voorbeeld1.xlsm" is dat bijvoorbeeld 11. Regel 2 neemt met Mid uit de bestandsnaam het stukje tekst dat begint op: Positie -1 en dan 2 tekens lang. Dat is dus hier "1." En de If...Then kijkt of dat stukje tekst gelijk aan "1." is. Als dat het geval is, zegt regel 3: de NieuweNaam wordt de bestandsnaam vanaf het begin tot aan 2 tekens vóór waar ".xlsm" begint, dus wordt de 1 weggelaten. Van de bestandsnaam "Sch81 Catch (Marokko)1" houd je zo "Sch81 Catch (Marokko)" over, dus zonder die 1. En daar moet dan ".xlsm" weer achter worden geplakt. En zo houd je "voorbeeld.xlsm" over. En dan slaat regel 4 dit bestand op onder deze nieuwe (kortere) naam, met: ThisWorkbook.SaveAs NieuweNaam Extra tip: kijk ook eens op www.vbauitleg.nl voor nog meer informatie over macro’s in Excel. [/faqmanantwoord]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...