Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Modificare colonne in VBA formulalocal senza $

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Modificare colonne in VBA formulalocal senza $

Postdi marcus69 » 02/03/21 17:13

ciao a tutti,
 
le due stringhe qui sotto, fanno la stessa cosa, e funzionano.
 
Prendono un range di celle, e ne fanno la somma. 
 
Cells(b, ultimacolonna).FormulaLocal = "=" & "SOMMA(C" & b & ":" & "E" & b & ")"
 
scrive =somma(c1:e1) , dove 1 è il numero della variabile
 
Cells(b, ultimacolonna).FormulaLocal = "=" & "SOMMA(" & Range(Cells(b, 3), Cells(b, ultimacolonna - 2)).Address & ")"
 
scrive =somma($c$1:$e$1), con riferimenti assoluti
 
Problemi:
1) nella  stringa 1, non sono capace di rendere variabile la colonna.
2) nella stringa 2  mi permette di rendere variabile la colonna, ma scrive la somma usando il "$" e rendendo il riferimento assoluto, quindi negli ordinamenti successivi si crea confusione e disallineamento dei dati.
 
Mi serve di poter rendere la formula variabile, perchè da altri controlli durante le operazioni ottengo le posizioni dei dati che devo ordinare e nel tempo posso variare.
 
allego un file di esempio del foglio dati orgine e ciò che ottengo in finale attualmente.
 
iL FILE banalmente prende gli ordini dei clienti, da un gestionale, me li restiuisce in formato EXCEL, e calcolo
 
1) il totale residuo da spedire per ogni cliente, (colonna residuo), delle settimane precedenti a quella in esame
2) il totale residuo piu la settimana in esame ( colonna virtuale), delle settimane precedenti piu la corrente
3) l'effetivo che vado a spedire, in quanto, quando si fa il programma si esamina cosa parte e cosa no, quindi nella (colonna reale) scriverò quanto parte effettivo, e nella colonna finale ( delta ), rilevo quanto rimane a terra.
 
Purtroppo capita che le settimane siano spalmate su due mesi ( a cavallo del fine mese per inciso ) e quindi le formule che usano devono considerare una colonna in piu o in meno a seconda dei casi.
 
Se le posso rendere variabili, prendo il riferimento dell'ultima settimana e posso cambiare il valore.
 
Se decidete di lanciare la macro, prima eliminate il foglio "res".

viewtopic.php?t=111305

http://www.filedropper.com/modifichiamolecolonne1
marcus69
Utente Senior
 
Post: 101
Iscritto il: 19/10/17 14:39

Sponsor
 

Re: Modificare colonne in VBA formulalocal senza $

Postdi Anthony47 » 02/03/21 19:22

Nell'ipotesi che la richiesta di aiuto sia solo relativa al togliere i riferimenti "assoluti" alla formula 2, allora basta specificare gli attributi della proprieta' Address:
Codice: Seleziona tutto
Cells(b, ultimacolonna).FormulaLocal = "=" & "SOMMA(" & Range(Cells(b, 3), Cells(b, ultimacolonna - 2)).Address(0, 0) & ")"
0, 0 indica modalita' non assoluta sia per la riga che per la colonna.

Guardando la macro, prima di perdermi ho notato questa porzione:
Codice: Seleziona tutto
For a = 3 To colonnamese + 1 ' converto i mesi in variabile
    If Cells(2, a) = "gen" Then
    Cells(200, a) = 1
    End If
    If Cells(2, a) = "feb" Then
    Cells(200, a) = 2
    End If
    If Cells(2, a) = "mar" Then
    Cells(200, a) = 3
    End If
    If Cells(2, a) = "apr" Then
'..
'..
Next a

Penso si possa sostituire con
Codice: Seleziona tutto
For a = 3 To colonnamese + 1 ' converto i mesi in variabile
    Cells(200, a) = Month(DateValue("1-" & Cells(2, a) & "-2020"))
Next a


Se invece avevi chiesto altro allora riprova, magari ...

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 18127
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modificare colonne in VBA formulalocal senza $

Postdi marcus69 » 02/03/21 20:03

Siete sempre il numero 1.
Domattina provo le modifiche. Che si potessero assegnare criteri alla ADDRES Non lo sapevo.

Grazie anche per la dritta sui mesi.
marcus69
Utente Senior
 
Post: 101
Iscritto il: 19/10/17 14:39

Re: Modificare colonne in VBA formulalocal senza $

Postdi marcus69 » 03/03/21 08:07

Grazie Antony.
Entrambe le dritte funzionano perfettamente.
marcus69
Utente Senior
 
Post: 101
Iscritto il: 19/10/17 14:39


Torna a Applicazioni Office Windows


Topic correlati a "Modificare colonne in VBA formulalocal senza $":


Chi c’è in linea

Visitano il forum: Nessuno e 23 ospiti