Toon posts:

Excel code creeeren vanuit excel naar meerdere regels

Pagina: 1
Acties:

Vraag


  • Zilverdael80
  • Registratie: December 2006
  • Laatst online: 03-02 11:35
Het klinkt een beetje als vage titel dus probeer het wat duidelijker te omschrijven.
Ik heb in excel een tabel met 500+ parts en hun bijbehorende resultaat.
Deze gegevens wil/moet ik omzetten in (oude) code welke gebruikt wordt voor testen.

een klein stukje van de Excel sheet is bijvoorbeeld onderstaand:
https://tweakers.net/i/toZGbuoU-ozifRSYFFRmp3kBxew=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/syLyX46NWcooArzMV2F3rUAY.png?f=user_large
de 'code' resultaten zouden moeten worden
code:
1
2
3
4
5
6
7
8
9
10
11
12
case "J31XK"    
    sReturn = "FTOS-FN-9.11.0.0.bin"
endcase 
case "56RW1"    
    sReturn = "SMARTSCRIPTS-M-9.14.1.0.tar.gz"
endcase 
case "DTFF0"    
    sReturn = "SMARTSCRIPTS-M-9.11.0.0.tar.gz"
endcase 
case "PCT3T"    
    sReturn = "PCM6220v5.1.3.7.stk"
endcase


Dat werkt nu tot dusver dat, omdat de code over meerdere excel regels wordt geschreven ik elke cel handmatig moet targeten ... doortrekken, copy-paste werkt niet.
Hoe krijg ik Excel zo ver dat ik dit wel kan copy pasten / doortrekken / één simpele beweging kan maken zodat wél alle 500+ bronregels worden gebruikt (en dus naar zo'n 1500+ target regels gaan)

Ik had al geprobeerd om alle code op één regel te zetten met CHAR(10), maar helaas kan je dat dan weer niet copy-pasten naar notepad achtige tools omdat je dan overal extra quotes krijgt.

Deze tabel zal met enige regelmaat aangepast worden, vandaar dat automatisering hiervan gewenst is.

Beste antwoord (via Zilverdael80 op 10-01-2023 11:02)


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Doortrekken / kopieren kan wel, maar dan wil je de verwijzingen af laten hangen van de rij

=(RIJ()-1)/3+1 geeft de rij waar de inhoud van case() in komt. Dan geeft ="Case \"&TEKEN(34)&INDIRECT(ADRES((RIJ()-1)/3+1;1))&TEKEN(34) als resultaat case "J31XK". Herhaal voor de rest.

Op 1 regel is inderdaad makkelijker. Maar: is Excel hier wel de handigste tool voor? Klinkt alsof je met een commandline script en een csv beter af bent.

[Voor 21% gewijzigd door F_J_K op 10-01-2023 10:58]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)

Alle reacties


  • dixet
  • Registratie: Februari 2010
  • Laatst online: 03-02 15:25
Je wilt dus eigenlijk code genereren vanuit Excel?
Ik herken zo niet de taal die gebruikt wordt, maar bij veel talen zijn regeleindes niet relevant.

Je zou in dat geval de statement op 1 regel kunnen zetten
https://tweakers.net/i/d63SuY_5HdS0cjMptB5mQifHqrU=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/MHpzs9bLgiaG1oWqpPuvVxsx.png?f=user_large

Dan is het allemaal prima door te trekken. Wanneer die regeleindes wel relevant zijn kan je in de cel zelf een enter zetten voor of achter je code. Helaas wordt het kopiëren van die tekst naar je code-editor dan wel lastiger omdat Excel in dat geval dubbele quotes om alle tekst zet.

  • Zilverdael80
  • Registratie: December 2006
  • Laatst online: 03-02 11:35
dixet schreef op dinsdag 10 januari 2023 @ 10:55:
Je wilt dus eigenlijk code genereren vanuit Excel?
Ik herken zo niet de taal die gebruikt wordt, maar bij veel talen zijn regeleindes niet relevant.
Helaas bij deze taal (aspect) wel.

En inderdaad door het gebruiken van regeleinden ( CHAR(10) ) wordt de code onbruikbaar om te copy-pasten door het toevoegen van extra quotes.

Acties:
  • Beste antwoord
  • +1Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Doortrekken / kopieren kan wel, maar dan wil je de verwijzingen af laten hangen van de rij

=(RIJ()-1)/3+1 geeft de rij waar de inhoud van case() in komt. Dan geeft ="Case \"&TEKEN(34)&INDIRECT(ADRES((RIJ()-1)/3+1;1))&TEKEN(34) als resultaat case "J31XK". Herhaal voor de rest.

Op 1 regel is inderdaad makkelijker. Maar: is Excel hier wel de handigste tool voor? Klinkt alsof je met een commandline script en een csv beter af bent.

[Voor 21% gewijzigd door F_J_K op 10-01-2023 10:58]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Zilverdael80
  • Registratie: December 2006
  • Laatst online: 03-02 11:35
F_J_K schreef op dinsdag 10 januari 2023 @ 10:58:
Doortrekken / kopieren kan wel, maar dan wil je de verwijzingen af laten hangen van de rij

=(RIJ()-1)/3+1 geeft de rij waar de inhoud van case() in komt. Dan geeft ="Case \"&TEKEN(34)&INDIRECT(ADRES((RIJ()-1)/3+1;1))&TEKEN(34) als resultaat case "J31XK". Herhaal voor de rest.

Op 1 regel is inderdaad makkelijker. Maar: is Excel hier wel de handigste tool voor? Klinkt alsof je met een commandline script en een csv beter af bent.
Moest hem even vertalen naar engels, maar werkt perfect! Bedankt


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee