Condividi:        

address cells riferiti ad una determinata riga

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

address cells riferiti ad una determinata riga

Postdi miko » 31/08/13 19:09

salve a tutti,
ho il seguente problema che dopo ricerche e studi al riguardo non sono riuscito a risolvere.
devo determinare la posizione-address di alcune celle rispetto ad una una determinata riga;
nell'esempio in fig. la riga assegnata è la 12, in grigio, e rispetto ad essa

Immagine

devo determinare la posizione delle celle colorate;
cambiando riga, ad esempio la 18, fig.successiva,

Immagine

le celle colorate hanno, rispetto alla riga grigia 18, la stessa posizione delle precedenti;
quindi la cella rossa, ad esempio, è sempre la prima rispetto alla riga assegnata;
le figure postate sono un esempio come lo sono le celle colorate, poichè sia la riga grigia che le celle
colorate variano;
quello che tuttavia cerco di stabilire è la posizione delle celle colorate rispetto alla riga grigia.
impropriamente scriverei, iniziando a contare da colonna A:
cella rossa: riga 1, colonna 3;
cella verde: riga -1, colonna 3;
cella gialla: riga -3 ,colonna 8;
Il range interessato è "C8-J & UR (ultima riga)" con la colonna I vuota.
ciao e grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: address cells riferiti ad una determinata riga

Postdi ricky53 » 01/09/13 01:44

Ciao,
tu con "riga assegnata" intendi la riga selezionata?
Se la tua risposta è "SI" allo prova con questo esempio da adattare
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "1. Rosso Riga selezionata = " & Target.Row & " - l'indirizzo è : " & Cells(Target.Row + 1, 3).Address(0, 0)
    MsgBox "2. Verde Riga selezionata = " & Target.Row & " - l'indirizzo è : " & Cells(Target.Row - 1, 3).Address(0, 0)
    MsgBox "3. Giallo Riga selezionata = " & Target.Row & " - l'indirizzo è : " & Cells(Target.Row - 3, 8).Address(0, 0)
End Sub



Oppure
... Chiarisci
Grazie
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: address cells riferiti ad una determinata riga

Postdi miko » 01/09/13 10:01

buona domenica a tutti;
ciao Ricky, lieto di "rivederti";
la tua macro funziona, grazie, ma non è purtroppo sufficiente.
hai infatti sollevato un problema che avevo dimenticato di precisare:
tu con "riga assegnata" intendi la riga selezionata?

la riga assegnata rientra in un ciclo che avrebbe la seguente struttura:

.... for riga = inizio to fine
avvio macro trova e colora (trova e colora le celle)
(in questo momento conosco il valore di riga e la "posizione visuale" delle celle colorate,
che evidentemente non è sempre identica come nelle figure postate)
avvio macro determina address cells (rispetto a riga)
avvio macro inserisci address in foglio (riporto gli address in un foglio)
next riga (ripeto ciclo)

stando a questa struttura, nella tua macro dovrei modificare manualmente
le linee dei MsgBox, credo da:

...Cells(Target.Row + 1, 3).Address(0, 0)
in:
...Cells(Target.Row + 1, X).Address(0, 0).

l'esempio postato nelle figure era un mio tentativo per una vostra migliore comprensione della richiesta.
ho pensato a questo ciclo ed alla colorazione delle celle per raggiungere il risultato;
poichè diversamente non saprei come individuare le celle delle quali determinare gli address;
ma se ciclo e/o colorazione creano problemi alla realizzazione della macro si può optare per un diverso
metodo.
forse calcolando la distanza, in avanti o a ritroso, tra la riga in grigio e la riga contenente
la cella di un determinato colore si raggiungerebbe il risultato?
saluti e grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: address cells riferiti ad una determinata riga

Postdi scossa » 01/09/13 12:32

Ciao,

se avessi allegato il tuo file (mi sembra siano numeri del lotto, quindi non ci sono dati sensibili), probabilmente avresti già ricevuto la soluzione, per cui ti consiglio di allegarlo, completo di macro, in modo da evitare di andare per tentativi.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: address cells riferiti ad una determinata riga

Postdi miko » 01/09/13 18:28

buona sera,
ciao scossa, grazie anche a te del tuo intervento, raro ma gradito;
hai ragione, dovevo inviarvi il file.
nel file non vi è praticamente nulla tranne un mio tentativo di determinare
gli address ed una macro trova, registrata e modificata per i colori.
si tratta ancora di un idea di progetto che sto gradatamente sviluppando;
infatti scrivevo in precedenza:
...la riga assegnata rientra in un ciclo che avrebbe la seguente struttura:...

e
...ho pensato a questo ciclo ed alla colorazione delle celle per raggiungere il risultato;
poichè diversamente non saprei come individuare le celle delle quali determinare gli address;
ma se ciclo e/o colorazione creano problemi alla realizzazione della macro si può optare per un diverso
metodo...

essendo ancora in fase progettuale sto vedendo alcuni argomenti al riguardo;
anche per la macro trova, che dovrebbe essere semplice da realizzare dato il numero elevato di argomenti simili,
trovo una difficoltà logica e concettuale su come strutturarla dal momento che ricercando più numeri contemporaneamente
dovrei usare più colori e determinare gli address distinguendo i diversi colori.
ipotizando complicazioni mi sono limitato allora ad una semplice macro che trova e colora le celle una per volta.
in definitiva sono ancora a zero.
magari riuscite a realizzare anche una macro trova per più valori adatta allo scopo, ;) .
vi invio comunque il file, almeno non dovrete inserire i valori.
http://www.filedropper.com/address
saluti e grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: address cells riferiti ad una determinata riga

Postdi scossa » 01/09/13 21:33

miko ha scritto:vi invio comunque il file, almeno non dovrete inserire i valori.
http://www.filedropper.com/address
saluti e grazie


scusa ma nel precedente post hai detto:
miko ha scritto:la riga assegnata rientra in un ciclo che avrebbe la seguente struttura:


ma io non ho trovato traccia di alcun ciclo, quindi dovresti spiegare bene tutto il processo, perché da quello che dici anche qui:

nell'esempio in fig. la riga assegnata è la 12, in grigio, e rispetto ad essa

Immagine

devo determinare la posizione delle celle colorate;

non si capisce se le celle siano già colorate e vuoi conoscere le coordinate rispetto a ?? o se tu vuoi colorare le celle 1 sopra e una sotto rispetto a ??

Bho!?
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: address cells riferiti ad una determinata riga

Postdi ricky53 » 02/09/13 00:39

Ciao,
dopo queste spiegazioni ... NON mi è più chiaro nulla.

Facezie a parte adesso non ho chiaro cosa ti occorre.
Le righe in grigio ci sono?
Le celle colorate ci sono?
I colori quali sono?
... leggi la mia firma e ... fatti sentire a con spiegazioni più chiare.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: address cells riferiti ad una determinata riga

Postdi Flash30005 » 02/09/13 07:54

Anche io ho diversi dubbi ma se vuoi la distanza delle righe (in meno o in più) rispetto alla riga colore grigio
e con essa la colonna e il colore (per il momento solo il numero colore)
puoi utilizzare questa macro che scriverà nel foglio (col O:Q) i tre parametri
Codice: Seleziona tutto
Sub RilevaAddr()
Set Ws = Worksheets("Foglio1")
UR = Ws.Range("A" & Rows.Count).End(xlUp).Row
Ws.Range("O1:Q65000").Clear
Ws.Range("O1").Value = "Riga"
Ws.Range("P1").Value = "Colonna"
Ws.Range("Q1").Value = "Colore"
For RR = 8 To UR
If Ws.Range("C" & RR).Interior.ColorIndex = 15 Then
RigaIni = RR
GoTo SaltaR
End If
Next RR
SaltaR:
For RR = 8 To UR
If RR <> RigaIni Then
For CC = 3 To 10
If Ws.Cells(RR, CC).Interior.Pattern <> xlNone Then
UR1 = Ws.Range("O" & Rows.Count).End(xlUp).Row + 1
Ws.Range("O" & UR1).Value = RR - RigaIni
Ws.Range("P" & UR1).Value = CC
Ws.Range("Q" & UR1).Value = Ws.Cells(RR, CC).Interior.ColorIndex
End If
Next CC
End If
Next RR


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: address cells riferiti ad una determinata riga

Postdi ricky53 » 02/09/13 14:45

Ciao,
prima leggi quanto ti ha inviato Flash ...

Altra domanda: quante righe di colore "GRIGIO" hai nel tuo foglio?

Ma un file di esempio ????
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: address cells riferiti ad una determinata riga

Postdi miko » 03/09/13 17:53

buona sera a tutti;
ho provato la macro di flash, funziona perfettamente;
è quella, risultato della mia richiesta, che cercavo di realizzare;
anche il codice di richy è interessante, e sto pensando come impiegarlo, forse sostituendo msgbox
con le celle;
vediamo cosa mi viene in mente.
tornando alla macro di flash, mi ha incuriosito:
....per il momento solo il numero colore

cosa altro avevi intenzione di introdurre?
la macro attuale determina le coordinate delle celle colorate rispetto ad una riga, quella in grigio;
se invece si volessero determinare le coordinate delle celle colorate rispetto ad una qualunque altra cella
ad esempio rispetto alla cella C12, come verrebbe modificato il codice?
ciao e grazie a tutti voi
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: address cells riferiti ad una determinata riga

Postdi ricky53 » 03/09/13 20:05

Ciao,
prova a selezionare la cella "C12" (o altra cella qualunque) ed utilizza il codice che ti avevo proposto nel mio primo intervento ... dovrebbe andare bene .. in caso lo adatto
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: address cells riferiti ad una determinata riga

Postdi Flash30005 » 03/09/13 21:23

Si possono fare molte cose... ma bisognerebbe sapere cosa vuoi ottenere
questa macro aggiunge il colore trovato nella colonna R, inoltre è possibile limitare, tramite variabili (RigaI e RigaF) quante righe Indietro e quante avanti rispetto alla riga grigia

Codice: Seleziona tutto
Sub RilevaAddr2()
Set Ws = Worksheets("Foglio1")
UR = Ws.Range("A" & Rows.Count).End(xlUp).Row
Ws.Range("O1:R65000").Clear
Ws.Range("O1").Value = "Riga"
Ws.Range("P1").Value = "Colonna"
Ws.Range("Q1").Value = "Colore"
RigaI = 5
RigaF = 5
For RR = 8 To UR
If Ws.Range("C" & RR).Interior.ColorIndex = 15 Then
RigaIni = RR
GoTo SaltaR
End If
Next RR
SaltaR:
For RR = RigaIni - RigaI To RigaIni + RigaF
If RR <> RigaIni Then
For CC = 3 To 10
If Ws.Cells(RR, CC).Interior.Pattern <> xlNone Then
UR1 = Ws.Range("O" & Rows.Count).End(xlUp).Row + 1
Ws.Range("O" & UR1).Value = RR - RigaIni
Ws.Range("P" & UR1).Value = CC
Ws.Range("Q" & UR1).Value = Ws.Cells(RR, CC).Interior.ColorIndex
Ws.Range("R" & UR1).Interior.ColorIndex = Ws.Cells(RR, CC).Interior.ColorIndex
End If
Next CC
End If
Next RR
End Sub


Per quanto riguarda la ricerca rispetto ad un colore variabile è possibile con un click o sul colore in colonna R oppure in colonna Q
ma bisogna sapere cosa fare visto che non sono righe colorate ma celle sparse qua e la
Considera che in Excel 2003 i colori standard della palette sono 56 come rilevabile da questa immagine che riporta il numero del colore corrispondente
Immagine

Uploaded with ImageShack.us

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: address cells riferiti ad una determinata riga

Postdi miko » 04/09/13 11:03

buongiorno,
ieri per la fretta non ho potuto soddisfare alcune vostre richieste e dubbi precedenti;
ora che avete realizzato le macro forse sarà anche più facile comprendere la mia richiesta.
la macro di ricky è molto efficiente, e cogliendo anche il tuo ultimo suggerimento, funziona perfettamente.
riferendomi a chi è inesperto come me, vorrei sottolineare l'aspetto caratteristico del suo codice;
essendoci l'evento seletionchange, qualunque riga o cella venga selezionata, anche al di fuori del range
con celle piene, viene individuata la riga e rispetto a questa determinati gli address di quelle celle,
inserite nel codice, e quindi sempre la (C,-1), oppure la (D,5) etc.. e senza necessità di dover prima cercare i numeri e colorarli;
necessità,(trova e colora celle), che invece io ritenevo indispensabile per il raggiungimento del risultato, quando scrivevo:
ho pensato a questo ciclo ed alla colorazione delle celle per raggiungere il risultato;
poichè diversamente non saprei come individuare le celle delle quali determinare gli address;
ma se ciclo e/o colorazione creano problemi alla realizzazione della macro si può optare per un diverso
metodo.

pertanto alla luce di questo codice, la macro trova e colora non ha motivo di esistere;
lo scopo era determinare gli address senza dover trovare alcunchè.
per quanto riguarda la macro trova avevo scritto che cercavo di adattare una macro, trascurando che pochi giorni addietro flash aveva realizzato una ottima macro;
io invece stupidamente, per non perdere tempo nelle modifiche di altre macro, mi sono registrato la macro che avete nel file inviatovi;
avevo infatti anche scritto:
..magari riuscite a realizzare anche una macro trova per più valori adatta allo scopo...

mi devo essere rincretinito in un colpo.
comprendo la perplessità di scossa;
il file di esempio che mi si chiedeva è quello inviatovi, non ho altro;
non vi sono righe grigie; il colore era attribuito per una più evidente visualizzazione.
la scelta della riga grigia e puramente casuale, non ho un criterio o metodo, dato lo scopo della richiesta.
infine il ciclo che ipotizzavo inizialmente è quello che ha realizzato flash nelle sue chiare e semplici macro;
sicuramente ho sbagliato l'impostazione del mio ciclo di esempio.
credo che sia tutto, salvo altre mie dimenticanze riguardo i vostri dubbi.
per quanto attiene alle macro di flash, sono altrettanto efficienti, anche per aver introdotto, come al solito e spontaneamente, ulteriori caratteristiche di visualizzazione.
infine riferendomi a:
Si possono fare molte cose... ma bisognerebbe sapere cosa vuoi ottenere

ed a:
ma bisogna sapere cosa fare visto che non sono righe colorate ma celle sparse qua e la

attualmente non ho idea su come, dove e perchè o su un possibile campo di applicazione di queste macro;
sono macro "isolate" e perciò non riesco ad immaginare eventuali altre richieste o modifiche;
l'unica richiesta che posso avanzare in questo momento è:
..se invece si volessero determinare le coordinate delle celle colorate rispetto ad una qualunque altra cella
ad esempio rispetto alla cella C12, come verrebbe modificato il codice?

grazie della vostra pazienza e disponibilità nonchè delle macro.
buona giornata
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: address cells riferiti ad una determinata riga

Postdi Flash30005 » 04/09/13 11:56

Mi sto perdendo :undecided:

Prova così
nel vba del foglio inserisci questo codice
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UR = Range("C" & Rows.Count).End(xlUp).Row
CheckArea = "C8:H" & UR
If Not Application.Intersect(Target, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
    RigaIni = Target.Row
    ColIni = Target.Column
RilevaAddr2
End If
End Sub


Nel modulo questa macro
Codice: Seleziona tutto
Sub RilevaAddr2()
Set Ws = Worksheets("Foglio1")
UR = Ws.Range("A" & Rows.Count).End(xlUp).Row
Ws.Range("O1:R65000").Clear
Ws.Range("O1").Value = "Riga"
Ws.Range("P1").Value = "Colonna"
Ws.Range("Q1").Value = "Colore"
RigaI = 5
RigaF = 5

For RR = RigaIni - RigaI To RigaIni + RigaF
If RR <> RigaIni Then
For CC = 3 To 10
If Ws.Cells(RR, CC).Interior.Pattern <> xlNone Then
UR1 = Ws.Range("O" & Rows.Count).End(xlUp).Row + 1
Ws.Range("O" & UR1).Value = RR - RigaIni
Ws.Range("P" & UR1).Value = CC - ColIni
Ws.Range("Q" & UR1).Value = Ws.Cells(RR, CC).Interior.ColorIndex
Ws.Range("R" & UR1).Interior.ColorIndex = Ws.Cells(RR, CC).Interior.ColorIndex
End If
Next CC
End If
Next RR
End Sub


Ora clicca in una cella nel range C8:Hx

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: address cells riferiti ad una determinata riga

Postdi miko » 04/09/13 12:18

ciao,
che altro equivoco è sorto? spero nessuno
anche se non capisco il tuo
Mi sto perdendo

le macro precedenti funzionano bene, ho solo voluto precisare le incomprensioni precedenti e richiedere
la modifica riportata in fondo al post.
ma ripeto le macro sono ottime per la richiesta che facevo inizialmente.
per l'ultima macro invece ricevo errore alla linea:
Codice: Seleziona tutto
..For CC = 3 To 10
If Ws.Cells(RR, CC).Interior.Pattern <> xlNone Then '<<<<<<<<<<<<<
.........

ciao grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: address cells riferiti ad una determinata riga

Postdi Flash30005 » 04/09/13 13:13

Non capisco come mai visto che è la stessa macro precedente
comunque prova a sostituire quella riga con questa
Codice: Seleziona tutto
If Ws.Cells(RR, CC).Interior.ColorIndex <> xlNone Then


Altrimenti ti invio il file che a me funziona

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: address cells riferiti ad una determinata riga

Postdi miko » 04/09/13 17:36

buona sera,
infatti anche io avevo notato che era una identica macro ed una uguale linea di codice;
avevo già provato la sostituzione che suggerisci, ma ho sempre errore;
forse però ho trovato il problema:
al click su una cella il vba si blocca, leggendo i valori delle variabili
nel modulo del foglio trovo:
RigaIni = Target.Row ad esempio uguale a 11
mentre nel modulo standard:
RigaIni = VUOTO
ho inserito allora in testata alla macro del modulo standard questa linea:
public RigaIni
e tutto funziona.
ti risulta?
ciao grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: address cells riferiti ad una determinata riga

Postdi Flash30005 » 05/09/13 02:06

Si
devi rendere Public (in cima al modulo) sia RigaIni sia ColIni (con l'ultima macro)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: address cells riferiti ad una determinata riga

Postdi miko » 14/09/13 18:51

buona sera a tutti,
grazie per la conferma e precisazione, provvederò a rendere public anche ColIni.
saluti e grazie.
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44


Torna a Applicazioni Office Windows


Topic correlati a "address cells riferiti ad una determinata riga":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti