Odiatemi.... ma visto che mi risolvete un sacco di problemi.... vi chiedo ancora una cosa.... (premetto che mi state insegnando un sacco di cose!!!!! )
In allegato trovate un file e il risultato che vorrei ottenere, non so se serve per forza una macro...
Sul foglio prova: intestazione sulla prima riga e sulla prima colonna.
Sul foglio Risultato: vorrei ottenere (immettendo i valori (Es: 1a)) nelle colonne successive che vengano inseriti, i valori se diversi da 0)
L'obbiettivo finale è creare delle "minitabelle" dove risulteranno dove sono presenti i valori a-b-c-d.... nei vari 1a-2a-3a....
Inizialmente ho provato a farlo con il SE.... ma ovviamente non mi elimina le celle vuote...
[Risolto] Elaborazione tabella ed eliminazione colonne vuote
-
- Messaggi: 8
- Iscritto il: sabato 11 marzo 2017, 18:21
[Risolto] Elaborazione tabella ed eliminazione colonne vuote
- Allegati
-
- test.ods
- (8.95 KiB) Scaricato 107 volte
Ultima modifica di charlie il mercoledì 22 marzo 2017, 13:58, modificato 2 volte in totale.
Motivazione: Corretto [Risolto] ed inserito segno di spunta verde
Motivazione: Corretto [Risolto] ed inserito segno di spunta verde
Open Office 4.1.3. Windows 10
Re: Elaborazione tabella ed eliminazione colonne vuote
Codice: Seleziona tutto
Sub TabellaSoloMaggioriZero
doc = thiscomponent ' il documento in uso
Sh1 = Doc.Sheets(0) ' il primo foglio
Sh2 = Doc.Sheets(1) ' il secondo foglio
Rem Rileva ultima colonna foglio 1
c = Sh1.createCursor
c.gotoEndOfUsedArea(false)
LastColumn = c.RangeAddress.EndColumn
Rem Inizializza contatori per posizioni su foglio 2
Contatore1 = 1
Contatore2 = 1
Rem Inizio ciclo
For X = 0 to LastColumn
Rem Verifica colonna in lettura
If x = 0 then
Rem riscontro per prima colonna (X=0) scrivi relativi dati
Sh2.getCellByPosition(0,1).String = Sh1.getCellByPosition(0, 2).String
Sh2.getCellByPosition(0,4).String = Sh1.getCellByPosition(0, 3).String
else
Rem riscontro per colonne successive (X>0) scrivi relativi dati
Rem Verifica nel PRIMO BLOCCO DATI FOGLIO PROVA se valore diverso da zero
if Sh1.getCellByPosition(x, 2).value <> 0 then
Rem Con riscontro valore letto > 0 legge i dati dal primo foglio e li scrive nel secondo
Sh2.getCellByPosition(Contatore1,0).String = Sh1.getCellByPosition(x, 1).String
Sh2.getCellByPosition(Contatore1,1).Value = Sh1.getCellByPosition(x, 2).value
Rem incremento contatore posizione PRIMO blocco
contatore1 = contatore1 +1
end if
Rem Verifica nel SECONDO BLOCCO DATI FOGLIO PROVA se valore diverso da zero
if Sh1.getCellByPosition(x, 3).value <> 0 then
Sh2.getCellByPosition(Contatore2,3).String = Sh1.getCellByPosition(x, 1).String
Sh2.getCellByPosition(Contatore2,4).Value = Sh1.getCellByPosition(x, 3).value
Rem incremento contatore posizione PRIMO blocco
contatore2 = contatore2 +1
end if
End if
Next
end sub
- Allegati
-
- test 01.ods
- (24.22 KiB) Scaricato 116 volte
-
- Messaggi: 8
- Iscritto il: sabato 11 marzo 2017, 18:21
Re: Elaborazione tabella ed eliminazione colonne vuote
Diciamo che sto capendo... infatti....sono riuscito a modificare i due fogli da cui pesca... ma, essendo nuovo nel mondo macro... se la colonna A avesse 35 valori invece di 2.... dove devo modificare la macro?
Open Office 4.1.3. Windows 10
Re: Elaborazione tabella ed eliminazione colonne vuote
Codice: Seleziona tutto
Sub TabellaSoloMaggioriZero
doc = thiscomponent ' il documento in uso
Sh1 = Doc.Sheets(0) ' il primo foglio
Sh2 = Doc.Sheets(1) ' il secondo foglio
Rem Rileva ultima COLONNA e uiltima RIGA foglio 1
c = Sh1.createCursor
c.gotoEndOfUsedArea(false)
UltimaColonna = c.RangeAddress.EndColumn
UltimaRiga = c.RangeAddress.EndRow
Rem Inizializza contatore RIGA
ContatoreRiga = 1
Rem Inizio ciclo conteggio RIGA
For riga = 2 to UltimaRiga
Rem Scrivi Le corrispondenze della prima colonna
Sh2.getCellByPosition(0,ContatoreRiga).String = Sh1.getCellByPosition(0, Riga).String
Rem Inizializza contatore riscontri COLONNA
ContatoreColonna = 1
Rem Inizia ciclo conteggio COLONNA
For x = 1 to UltimaColonna
Rem Verifica contenuto cella
if Sh1.getCellByPosition(x,Riga).value <> 0 then
Rem Caso riscontro scrivi le relative corrispondenze nel secondo foglio
Sh2.getCellByPosition(ContatoreColonna,ContatoreRiga -1).String = Sh1.getCellByPosition(X, 1).String
Sh2.getCellByPosition(ContatoreColonna,ContatoreRiga).String = Sh1.getCellByPosition(X, Riga).String
ContatoreColonna = ContatoreColonna +1
End if
Next
Rem Incrementa contatore RIGA
ContatoreRiga = ContatoreRiga + 3
Next
End sub
- Allegati
-
- Test - Elaborazione tabella ed eliminazione colonne vuote.ods
- (13.48 KiB) Scaricato 129 volte