• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Met script regel van elders invoegen

Status
Niet open voor verdere reacties.

grietsenwijma

Gebruiker
Lid geworden
25 jun 2013
Berichten
241
Ik ben nogal druk met het omtoveren van VBA naar script omdat ons systeem geen VBA meer toestaat.

Een heleboel kom il al wel uit, alleen deze niet

Zie bijgaand voorbeeld bestand

Het script dat ik zoek moet het volgende doen:
Uitgangssituatie: een willekeurige cel geselecteerd op 1 van de regels van blad A
Op blad 2 staat een regel die in het naamvak de naam RegelX heeft

Wat het script moet doen is RegelX kopiëren en invoegen onder de geselecteerde cel

Wat we nu zien op blad 1 zou het resultaat zijn als ik dit script zou hebben uitgevoerd als ik cel E10 had geselecteerd

Wie heeft een oplossing?

Alvast dank!
 

Bijlagen

omdat ons systeem geen VBA meer toestaat.

Alsof je de wielen van een auto afhaalt. Office scripts komt niet in de buurt van VBA…
 
ben ik het helemaal mee eens, maar ik ben van mening dat zitten sippen over dingen die buiten je macht liggen je ook niet verder brengt.

Ik probeer er op deze manier het beste van te maken, vandaar mijn vraag
 
Code:
function main(workbook: ExcelScript.Workbook): void {
    // Verkrijg de werkbladen Blad1 en Blad2
    let sheet1: ExcelScript.Worksheet = workbook.getWorksheet("Blad1");
    let sheet2: ExcelScript.Worksheet = workbook.getWorksheet("Blad2");

    // Verkrijg de geselecteerde cel
    let selectedCell: ExcelScript.Range = workbook.getActiveCell();

    // Controleer of de geselecteerde cel in kolom A van Blad1 ligt
    if (selectedCell.getColumnIndex() === 0 && selectedCell.getWorksheet().getName() === "Blad1") {
        let rowIndex: number = selectedCell.getRowIndex();

        // Verkrijg de hele rij uit Blad2 op dezelfde index
        let rowFromBlad2: ExcelScript.Range = sheet2.getRange(`A${rowIndex + 1}:Z${rowIndex + 1}`); // A tot Z, pas aan als er meer kolommen nodig zijn

        // Verkrijg de waarden van de geselecteerde rij in Blad2
        let rowValues = rowFromBlad2.getValues();

        // Verkrijg de doelreeks in Blad1
        let targetRange: ExcelScript.Range = sheet1.getRange(`A${rowIndex + 1}:Z${rowIndex + 1}`); // Plaats de gegevens in dezelfde rij in Blad1

        // Zet de waarden van Blad2 in Blad1
        targetRange.setValues(rowValues);
    }
}

Aldus ChatGPT, helaas kun je een script niet laten triggeren of herhalen vertelt ChatGPT me ook ;)

In Office Scripts voor Excel kun je geen directe event-gedreven triggers maken (zoals een Worksheet_Change of Workbook_Open event zoals in VBA). Dit betekent dat Office Scripts niet automatisch kunnen reageren op gebruikersacties, zoals het klikken op een cel of het wijzigen van een waarde.
 
De code gelijk aan het werk gezet.
Hij doet niks.
...en ik heb het even doorgelezen, voor zover ik codes begrijp lijkt het ook niet op wat de bedoeling is. AI is minder intelligent dan je zou denken :(
 
doet zeker wat kopieer de waardes in blad 2 even naar boven en naar beneden door.
Als je nu in blad 1 op bv cel A1 gaat staan en je draait het script wordt de regel uit blad 2 erin gekopieerd.

In jouw file gebeurt er niks omdat alleen rij 11 gevuld is in blad2
 

Bijlagen

Werkt bij mij niet met dit script.
er gebeurt niks zelfs

Maar ik lees ook dat er een misverstand is over wat ik wil bereiken

Ongeacht in welke cel je in blad 1 staat, hij moet regel 11 van blad 2 kopiëren

(deze regel heet in het naamvak RegelX, dus het script moet niet regel 11 selecteren, maar RegelX)

En vervolgens de kopie van RegelX invoegen onder de geselecteerde cel op blad 1.

Dus als je zoals jij zegt in blad 1 op A1 staat moet de gekopieerde regel 11 van blad 2 (RegelX) worden ingevoegd na regel 1 van blad 1
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan