+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 4 su 4

ripetere la formula per ogni riga modifica

  1. #1
    stefo7 non è in linea Novello
    ciao a tutti, ho questa macro:
    targetCell = ThisComponent.Sheets(0).getCellRangeByName("L535")
    targetCell.setFormula("=CONCATENATE(""Disponibilita' Fornitore (arrivo in 5/7 giorni lavorativi dall ordine)"";"" "";""Pezzi"";;"" "";IFERROR(INDEX(Innova.B:B;MATCH(1;(Innova.A:A=C534)*(Innova.C:C=N535);0));""""") REM Be careful with references!!
    Select Case targetCell.FormulaResultType2
    REM Overwriting the properties .Value or .String will dispose the formula again.
    Case 1 REM Number type Double v = targetCell.Value targetCell.Value = v
    Case 2 REM text type String s = targetCell.String targetCell.String = s End Select
    
    ma avrei bisogno che si ripeta in automatico per un numero definito di righe, bloccando il codice C534 (come se fosse $C$534) e che gli altri due (L535, N535) cambino al cambiare delle righe. devo usare una macro e non le formule perchè sono migliaia di righe per ogni foglio e si sovraccarica troppo. qualcuno ha idea di come fare? grazie mille
    Ultima modifica di stefo7; 19-03-2021 15:41 

  2. #2
    Usa i tag code per la macro altrimenti non si capisce. Dai un'occhiata al regolamento
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    stefo7 non è in linea Novello
    ok scusate. Spero di aver fatto giusto ora

  4. #4
    stefo7 non è in linea Novello
    Se dovesse servire a qualcuno ho risolto in questo modo (lo so che è un pò macchinoso e sovraccarica un pò il sistema ma meglio che fare ogni riga a mano): In pratica ho registrato una Macro che mi fa il copia e incolla della formula e successivamente il copia e incolla speciale solo dati così da eliminare la formula e alleggerire il tutto.

     REM BASIC
    
    rem solo per promemoria formula ("=CONCATENATE(""Disponibilita' Fornitore (arrivo in 5/7 giorni lavorativi dall ordine)"";"" "";""Pezzi"";;"" "";IFERROR(INDEX(Innova.B:B;MATCH(1;(Innova.A:A=C534)*(Innova.C:C=N535);0));""""") REM Be careful with references!!
    
    sub _64000B_ rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    
    rem ---------------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "ToPoint" args1(0).Value = "$L$534"
    
    dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
    
    rem ---------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
    
    rem ---------------------------------------------------------------------- dim args3(0) as new com.sun.star.beans.PropertyValue args3(0).Name = "ToPoint" args3(0).Value = "$L$535:$L$629"
    
    dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
    
    rem ---------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
    
    rem ---------------------------------------------------------------------- dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
    
    rem ---------------------------------------------------------------------- dim args6(5) as new com.sun.star.beans.PropertyValue args6(0).Name = "Flags" args6(0).Value = "SVD" args6(1).Name = "FormulaCommand" args6(1).Value = 0 args6(2).Name = "SkipEmptyCells" args6(2).Value = false args6(3).Name = "Transpose" args6(3).Value = false args6(4).Name = "AsLink" args6(4).Value = false args6(5).Name = "MoveMode" args6(5).Value = 4
    
    dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())
    
    CALL _64000L_ 'avvio altra macro
    
    end sub
    

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Ripetere intestazione report su ogni pagina
    Da maxs84 nel forum Microsoft Access
    Risposte: 44
    Ultimo Post: 18-07-2016, 08:23
  2. [VB.NET]: Numerare ogni riga di una listview
    Da maninblack nel forum Visual Basic .Net
    Risposte: 9
    Ultimo Post: 25-11-2014, 18:27
  3. Modifica formula Somma.Se
    Da Codice_da_Vinci nel forum Microsoft Excel
    Risposte: 11
    Ultimo Post: 27-11-2013, 13:39
  4. Ottenere un msgbox per ogni lettera di una riga
    Da Theox nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 12-07-2011, 19:47
  5. Intestazione Colonne a inizio di ogni riga
    Da Elimar nel forum Microsoft Word
    Risposte: 5
    Ultimo Post: 07-01-2009, 12:08