Copiare intera colonna in base al valore inserito

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Copiare intera colonna in base al valore inserito

Messaggio da guidoffice »

Buona sera, spero di riuscire ad essere chiaro pur non essendo molto pratico.
Dovrei inserire in una cella una formula (o funzione?) in base alla quale, in base al numero che inserisco deve copiare nella colonna tutti i valori presenti in un altra colonna.
Provo a spiegarmi meglio: se ad esempio inserisco in una data cella il valore 5,nella colonna devono essere inseriti tutti i valori presenti nella colonna (ad esempio) C, se invece inserisco il valore 6 devono essere inseriti i valori presenti nella colonna D se inserisco il valore 7 tutti valori presenti nella colonna D ecc.
Nella cella andrò ad inserire un valore da 1 a 99, la colonna da copiare contiene circa 99 celle ognuna con un valore prestabilito.
E' possibile? e soprattutto alla mia portata?
Vi ringrazio molto anticipatamente.
Guido
Ultima modifica di guidoffice il sabato 18 marzo 2017, 19:28, modificato 2 volte in totale.
openoffice 3.1 su windows xp
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da patel »

occorre una macro e non delle più semplici perché deve gestire l'evento Modifica Cella, comunque è possibile, allega un file di esempio con dati e spiegazioni chiare
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da guidoffice »

grazie per la risposta. ho allegato un piccolo file di esempio, spero sia chiaro.
Ho ridotto per praticità il numero e la grandezza delle colonne.
Allegati
ESEMPIO PER FORUM.ods
(11.01 KiB) Scaricato 124 volte
openoffice 3.1 su windows xp
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da patel »

ti allego il file con la macro, provalo
Se non conosci per niente le macro leggi qui http://professoressa.altervista.org/Dis ... re_OOo.pdf
Allegati
ESEMPIO PER FORUM.ods
(19.27 KiB) Scaricato 134 volte
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da guidoffice »

sarebbe perfetto, ma come faccio a copiare la macro nelle celle successive? devo anche modificare il numero delle colonne ed il numero delle loro celle.
Ovviamente non ho idea di cosa sia una macro e pur avendo letto il link che mi hai inviato ne so meno di prima.
Comunque grazie.
openoffice 3.1 su windows xp
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da patel »

non devi copiare la macro nelle celle successive, funziona già in quelle successive, devi soltanto esaminarla, cercare di capire come funziona e modificarla, altrimenti allega il file definitivo
Ultima modifica di patel il venerdì 17 marzo 2017, 9:37, modificato 1 volta in totale.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da guidoffice »

Grazie per la disponibilità.
Come faccio ad esaminarla?
openoffice 3.1 su windows xp
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da patel »

per quello ti ho allegato il link
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da guidoffice »

SCUSAMI SE APPROFITTO, MI DICI COME FACCIO A VISUALIZZARE LA MACRO PER "STUDIARLA"?
openoffice 3.1 su windows xp
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2995
Iscritto il: martedì 18 maggio 2010, 17:01

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da lucky63 »

Ti allego anche il mio esempio.
Le prime 99 colonne sono riservate per l'inserimento della tua tabella numeri originaria.
La colonna 100 è libera per staccare un po' dalla zona di inserimento
Dalla colonna 101 fine all'ultima colonna (celle gialle) impostata validità dati in modo da poter inserire solo numeri interi da 1 a 99.
Se inserisci un numero diverso viene segnalato e devi inserire un numero corretto.
Ogni volta che inserisci un numero corretto nelle celle gialle (intero da 1 a 99) viene trascritta automaticamente la corrispondente colonna dati
Schermata.png
Quella che segue è la macro che esegue l'operazione ed è collegata all'evento foglio "Contenuto modificato".
(P.s.: la macro di @Patel è più "sofisticata").

Codice: Seleziona tutto

 doc = thiscomponent	' il documento in uso
 Sh1 = Doc.Sheets(0) ' il primo foglio

 Rem Rileva ultima COLONNA e ultima RIGA foglio 1
 c = Sh1.createCursor
 c.gotoEndOfUsedArea(false)
 UltimaColonna	= c.RangeAddress.EndColumn
 UltimaRiga		= c.RangeAddress.EndRow

  Rem Rileva NR Colonna e NR Riga della Posizione del cursore
 Colonna	= thisComponent.currentSelection.CellAddress.Column
 Riga	= thisComponent.currentSelection.CellAddress.Row
  
 Rem Verifica riga e colonna da inserire
 If Riga = 0 and Colonna > 99 then
	Rem Rileva il numero cella della colonna da copiare
	ColonnaDaCopiare = Sh1.getCellByPosition(Colonna,0).value
		Rem Copia i dati della colonna di riscontro (per le celle vuote = 0 Inserisci cella vuota "")
		For X = 1 to UltimaRiga
			if Sh1.getCellByPosition(ColonnaDaCopiare-1,x).value <> 0 then
			Sh1.getCellByPosition(Colonna,x).value = Sh1.getCellByPosition(ColonnaDaCopiare-1,x).value 
			Else
			Sh1.getCellByPosition(Colonna,x).String = ""
			End if
		Next x
 end if	

 End sub
Allegati
ESEMPIO PER FORUM 01.ods
(21.4 KiB) Scaricato 108 volte
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da guidoffice »

ciao, per me sarebbe perfetto, peò ho inserito un valore ed in alcune celle compare ## (ti allego il file).
Inoltre volevo chiederti se posso inserire altre colonne tra i valori determinati e le celle in giallo (tu hai lasciato una colonna, me ne servirebbero 4).
Grazie mille per l'aiuto
Allegati
ESEMPIO PER FORUM 01.ods
(14.16 KiB) Scaricato 92 volte
openoffice 3.1 su windows xp
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2995
Iscritto il: martedì 18 maggio 2010, 17:01

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da lucky63 »

guidoffice ha scritto: ho inserito un valore ed in alcune celle compare ##
I caratteri ### appaiono quando la colonna è troppo stretta per visualizzare il contenuto.
Allargando la colonna i cancelletti scompaiono.
Nel tuo caso quelle celle avevano una formattazione carattere più grande delle altre e bastava adattare la formattazione carattere al pari delle altre.
Ho sistemato. Ora tutto foglio ha formattazione carattere Arial 6 (grassetto per la prima riga).
guidoffice ha scritto:me ne servirebbero 4
Ho inserito le quattro colonne
Schermata.png
e modificato come segue la riga della macro per far partire i controlli dalla prima cella gialla
(notare che cambia parametro da 99 a 102 ... per eventuali ulteriori modifiche future ...)

Codice: Seleziona tutto

 If Riga = 0 and Colonna > 102 then
Allego file modificato
Allegati
ESEMPIO PER FORUM 02.ods
(20.62 KiB) Scaricato 87 volte
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da guidoffice »

GRAZIE MILLE . E' PERFETTO.
openoffice 3.1 su windows xp
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2995
Iscritto il: martedì 18 maggio 2010, 17:01

Re: COPIARE INTERA COLONNA IN BASE AL VALORE INSERITO

Messaggio da lucky63 »

guidoffice ha scritto:GRAZIE MILLE . E' PERFETTO.
Prego.

A questo link v ... f=2&t=5661
indicazioni su come riportare problema "Risolto.
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Re: Copiare intera colonna in base al valore inserito

Messaggio da guidoffice »

Chiedo scusa se disturbo ancora. Volevo chiedere se è possibile una ultima miglioria al modulo creato (file in allegato).
Mi sarebbe utile questo: le colonne CW2-91 e CX2-91 (evidenziate in verde) dovrebbero copiare i valori riportati nelle colonne CZ2-91 e DA2-91 (evidenziate in grigio).
Preciso che nella colonna DA2-91 ci sono dei valori che cambiano ogni volta che inserisco un numero nella riga evidenziata in giallo.
Le colonne CW2-91 e CZ2-91 DOVREBBERO PERO' ORDINARSI IN ORDINE CRESCENTE OGNI VOLTA CHE CAMBIANO I VALORI SENZA MODIFICARE L'ORDINE DI TUTTE LE ALTRE CELLE, RIGHE O COLONNE.
Allegati
MODULO DEFINITIVO.ods
(12.89 KiB) Scaricato 70 volte
openoffice 3.1 su windows xp
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2995
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Copiare intera colonna in base al valore inserito

Messaggio da lucky63 »

Come da ultima richiesta:
MODULO DEFINITIVO_01.png
guidoffice ha scritto:Le colonne CW2-91 e CZ2-91 DOVREBBERO PERO' ORDINARSI IN ORDINE CRESCENTE ...
Sicuro che non siano i range di CW e CX da ordinare crescenti (Nel caso puoi cambiare il range corrispettivo nella macro).
Allegati
MODULO DEFINITIVO_01.ods
(15.85 KiB) Scaricato 79 volte
guidoffice
Messaggi: 37
Iscritto il: venerdì 28 giugno 2013, 6:24

Re: Copiare intera colonna in base al valore inserito

Messaggio da guidoffice »

Ciao, le colonne CW e CX si dovrebbero ordinare in modo crescente ed in maniera automatica ogni volta che inserisco nella riga 1 un nuovo valore. Adesso devo cliccare ogni volta il pulsante per ordinarle ad ogni nuovo inserimento.
Purtroppo non sono in grado di modificare alcuna macro.
Grazie ancora
openoffice 3.1 su windows xp
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2995
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Copiare intera colonna in base al valore inserito

Messaggio da lucky63 »

guidoffice ha scritto:le colonne CW e CX si dovrebbero ordinare in modo crescente ed in maniera automatica
Come immaginavo
lucky63 ha scritto:Sicuro che non siano i range di CW e CX da ordinare crescenti
Prova ora. Fai test
MODULO DEFINITIVO_02.png
Allegati
MODULO DEFINITIVO_02.ods
(17.82 KiB) Scaricato 99 volte
Rispondi