VBA aanpassen naar script voor Excel Online

oeps, vergeten printscreentje toe te voegen bij de vorige post.
 

Bijlagen

  • 2024-03-22_20-02-39.png
    2024-03-22_20-02-39.png
    9,1 KB · Weergaven: 2
Ehh, volgens mij niet. Er staat 'Date' in het lint voor de cellen in kolom A.

Vreemd dat het met het eerdere script wel werkte (het filter dan tenminste) maar nu dan weer niet.

Edit:
Die nogmaals geprobeerd en die filtert idd wel de datum van gisteren weg maar komt dan weer met die foutmelding als er geen datums in het verleden meer zijn.
 

Bijlagen

  • 2024-03-23_20-26-51.png
    2024-03-23_20-26-51.png
    62,7 KB · Weergaven: 2
Laatst bewerkt:
Dat er Date als getalsformaat staat zegt helaas niets over wat Excel vindt dat de inhoud is. Selecteer je datum kolom, druk op F5, Special, kies dan Constants (of formulas als er formules in die kolom staan), vink "Numbers" aan en alle andere uit en klik OK. Als je een melding krijgt dat niets is gevonden dan denkt Excel dat er tekst in die cellen staat en geen datum.
Hoe komen deze data in je spreadsheet?
 
Moet ik bovengenoemde handelingen in excel uitvoeren of als het spreadsheet open is in excel online?

Als ik in excel doe dan krijg ik: Go To en zie ik Tables in het lijstje.
In online ververst de spreadsheet
 
Er komt geen melding en alle datums blijven gewoon staan in de kolom.

De datums worden verkregen dmv de kalender popup.


Ik heb nu een voorbeel bestandje bijgevoegd
 
Laatst bewerkt door een moderator:
Heb je de naam van de tabel en de naam van de datum-kolom in het script aangepast aan wat er in het bestand is gebruikt?
 
Oh damm, verkeerde bestand hierboven toegevoegd 🤦‍♂️🤦‍♂️

Die kan ik niet meer verwijderen?
 
dit is het test bestandje
 

Bijlagen

  • Test datums.xlsx
    23,6 KB · Weergaven: 6
OK, ik heb het eindelijk gevonden. Om de een of andere idiote reden geeft Date().GetMonth() een maand die start bij 0 voor januari. Maar .GetFullYear en .GetDate niet! Any way, aangepast script:
Code:
function main(workbook: ExcelScript.Workbook) {
  let table1 = workbook.getTable("Table1438");
  // Apply custom filter on table table1 column "datum"
  const year = new Date().getFullYear();
  const month = new Date().getMonth() + 1;
  const day = new Date().getDate();
  console.log("<" + day + "-" + month + "-" + year);
  table1.getColumnByName("Start evenement").getFilter().applyCustomFilter("<" + day + "-" + month + "-" + year);
  let selectedSheet = workbook.getActiveWorksheet();
  let verleden_2024 = workbook.getWorksheet("Verleden 2024");
  // Paste to range A2 on verleden_2024 from range A2:A58 on selectedSheet
  const dataRange = table1.getRangeBetweenHeaderAndTotal();
  const visibleAreas = dataRange.getSpecialCells(ExcelScript.SpecialCellType.visible);
  
  if (visibleAreas !== undefined) {
    console.log("Verplaatsen gestart");
    verleden_2024.getRange("A" + verleden_2024.getRange().getRowCount()).getRangeEdge(ExcelScript.KeyboardDirection.up).getOffsetRange(1, 0).copyFrom(visibleAreas)
    let areas = visibleAreas.getAreas();
    for (let i = areas.length - 1; i >= 0; i = i - 1) {
      areas[i].getEntireRow().delete(ExcelScript.DeleteShiftDirection.up);
    }
  } else {
    console.log("Niets te kopieren");
  }
  table1.getAutoFilter().clearCriteria();
}
 
Ik ben zo blij met je hulp maar vind het wel heel vervelend dat je er zoveel werk aan hebt dat het steeds niet lukt. (zover zou ik nooit gekomen zijn)

Zie hieronder de meldingen en de datum uit het verleden die nog gewoon blijft staan.

2024-03-28_13-24-55.png
 
Kijk eens naar de beschikbare datumopmaak-codes in de celopmaak. ALs dat bijvoorbeeld mm/dd/yyyy is, probeer handmatig de tabel eens op deze waarde te filteren: 3/20/2024 . Als dat werkt, dan is dat de opmaak die ook door het script moet worden gebruikt om te filteren.
 
Ook dan gebeurd er niets met de datum uit het verleden0

2024-03-28_14-31-49.png
 
maar deze werkt wel nog gewoon als er een datum in het verleden is. Echter dus de foutmeolding als er geen datum uit het verleden is.

2024-03-28_14-33-22.png
 
Probeer dit eens:
- Bewerk het script en zet // voor de laatste regel die het filter verwijdert
- Kijk nu na uitvoeren van het script hoe het filter staat ingesteld
- Bewerk de datum van het filter totdat deze de tabel correct filtert
- Dit zou de datum-opmaak moeten worden die het script moet gebruiken
- Let op, de datum wordt op twee plaatsen in het script opgebouwd, je moet beide aanpassen!
 
Probeer dit eens:
- Bewerk het script en zet // voor de laatste regel die het filter verwijdert
- Kijk nu na uitvoeren van het script hoe het filter staat ingesteld
- Bewerk de datum van het filter totdat deze de tabel correct filtert
- Dit zou de datum-opmaak moeten worden die het script moet gebruiken
- Let op, de datum wordt op twee plaatsen in het script opgebouwd, je moet beide aanpassen!

en dan bedoel je met dit script en datum notatie?

2024-03-28_14-31-49.png
 
Terug
Bovenaan Onderaan