Pagina precedente | 1 2 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Riporta valore posizionato in colonna B in cella F1

Ultimo Aggiornamento: 28/08/2017 12:09
Post: 60
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
21/08/2017 15:27

Ciao a tutti

Il file allegato contiene una macro che riporta il valore selezionato in colonna D nella cella F1.
É possibile fare in modo che selezionando un valore della colonna D non riporti il valore contenuto della stessa cella selezionata ma bensí il valore contenuto in colonna B sulla stessa riga?
Es: Seleziono cella D16, valore riportato in F1 è 66

Grazie mille
Marilena

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <= 4 Then
Cells(1, 6) = Target.Value
End If
End Sub
Post: 3.415
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
21/08/2017 15:44

Ciao Marilena

Al momento non un pc ma prova a sostituire la terza riga con questa istruzione

Cells(Target.Row, 2).Value = Target.Value

Alfredo
Post: 1.557
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
21/08/2017 16:42

ciao
forse è:

Cells(1, 6) = Cells(Target.Row, 2).Value

saluti


Domenico
Win 10 - Excel 2016
Post: 1.313
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
21/08/2017 19:09

ho scritto
un doppione [SM=g27827]

anche se non capisco quel <=4

sarà =4

altrimenti funziona anche in C e B

oppure



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("D10:D10000")) Is Nothing Then
Cells(1, 6) = Cells(Target.Row, 2).Value
End If
End Sub

[Modificato da federico460 21/08/2017 19:16]
Post: 60
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
22/08/2017 16:47

Grazie di cuore a tutti.
La proposta di dodo funziona bene. [SM=x423017]

scusate tanto,....pensavo di riuscire ad abbinare una seconda macro al cambio valore della cella F1 ma non ci riesco a farla funzionare correttamente, funziona solo se clicco sulla cella stessa ( F1 ).
Sapete dove sbaglio? Perchè vorrei che la seconda macro si lanciasse in automatico ad ogni cambiamento di valore nella cella F1

Riallego il file con la macro

ancora grazie mille
Marilena




Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim i As Long
Dim col As Long
Dim rig As Long

If Target.Column = 4 Then
Cells(1, 6) = Cells(Target.Row, 2).Value

End If

If Not Intersect(Target, Range("f1")) Is Nothing Then
rig = Target.Row
For i = 7 To Cells(rig, Columns.Count).End(xlToLeft).Column
If Cells(rig, i) = Target Then Exit For
Next i
Cells(rig, 7).Select
ActiveWindow.SmallScroll ToRight:=i - 7
End If
End Sub
Post: 1.559
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
22/08/2017 18:05

ciao
dovresti spiegare a parole cosa deve fare la seconda macro perchè leggendo il tuo codice non si capisce (almeno io non capisco)

saluti


Domenico
Win 10 - Excel 2016
Post: 61
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
22/08/2017 18:42

Ciao dodo
grazie per avermi chiesto ulteriori spiegazioni

la seconda macro accosta alla colonna F la colonna contenente lo stesso valore della cella F1 presente in riga 1
esempio:
se seleziono la cella D18 la prima macro riporta il valore 38 in F1 mentre la seconda macro dovrebbe cercare il corrispondente (in questo caso il 38) e posizionarlo a lato della F1 .
Al momento la macro si attiva e accosta lo stesso numero solo se clicco direttamente sulla cella F1 mentre avrei bisogno che i rispettivi numeri si accostassero cliccando direttamente dalla colonna D.

saluti
Marilena
Post: 1.315
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
22/08/2017 23:48

ciao


Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim i As Long
Dim col As Long
Dim rig As Long


If Target.Column = 4 Then
Cells(1, 6) = Cells(Target.Row, 2).Value
Cells(1, 6).Select
End If


If Not Intersect(Target, Range("f1")) Is Nothing Then
rig = Target.Row
For i = 7 To Cells(rig, Columns.Count).End(xlToLeft).Column
If Cells(rig, i) = Target Then Exit For
Next i
Cells(rig, 7).Select
ActiveWindow.SmallScroll ToRight:=i - 7
End If
End Sub



dovrebbe essere quello che chiedi

sicuramente migliorabile non sono
esperto di macro

ma funziona
Post: 62
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
23/08/2017 09:32

ciao federico

grazie ma da me funziona sempre solo se clicco direttamente sulla F1 ma non si attiva in automatico al clic su una lettera in colonna D

saluti

Marilena
Post: 1.316
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
23/08/2017 09:54

ciao
proprio no
l'ho testato anche ora

basta aggiungere alla tua prima macro

Cells(1, 6).Select



dopo

Cells(1, 6) = Cells(Target.Row, 2).Value



e prima di End If

e funziona

quella stringa in più
ti porta la selezione in cella F1
e fa in modo che tu non debba cliccarci sopra


[Modificato da federico460 23/08/2017 09:57]
Post: 1.561
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
23/08/2017 10:53

Re:
Mary-92, 22/08/2017 18.42:

Ciao dodo
grazie per avermi chiesto ulteriori spiegazioni

la seconda macro accosta alla colonna F la colonna contenente lo stesso valore della cella F1 presente in riga 1
esempio:
se seleziono la cella D18 la prima macro riporta il valore 38 in F1 mentre la seconda macro dovrebbe cercare il corrispondente (in questo caso il 38) e posizionarlo a lato della F1 .
Al momento la macro si attiva e accosta lo stesso numero solo se clicco direttamente sulla cella F1 mentre avrei bisogno che i rispettivi numeri si accostassero cliccando direttamente dalla colonna D.

saluti
Marilena



Ciao
c'è un errore di fondo nella tua impostazione, relativo allo scroll.

Prova:
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim i As Long
 Dim col As Long
 Dim rig As Long

 If Target.Column = 4 Then
 Cells(1, 6) = Cells(Target.Row, 2).Value
 Cells(1, 6).Select
 End If

 rig = 1
 For i = 7 To Cells(rig, Columns.Count).End(xlToLeft).Column
    If Cells(rig, i) = Target Then
       Application.Goto Cells(1, i), True
       Exit For
    End If
 Next i
 End Sub


Saluti



[Modificato da dodo47 23/08/2017 10:56]
Domenico
Win 10 - Excel 2016
Post: 1.317
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
23/08/2017 11:04

ciao
Dodo

mi dici perché le celle con la T e la U
o non vengono lette e si comportano stranamente?

e non capisco perché selezionare
alla fine
una cella che al 99% dei casi
è nascosta?

Cells(rig, 7).Select

non sarebbe più logico selezionare
la 6?
almeno vedi la selezione [SM=g27833]
[Modificato da federico460 23/08/2017 11:07]
Post: 1.563
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
23/08/2017 11:21

Ciao fede
io ho capito che mary vuole accostare la colonna della riga 1 contenente il valore scelto in f1 appunto alla colonna f, quindi se scelgo la T, la col. AB (contenente il corrispondente valore 33) si accosta alla colonna F.

Se non è così, ma mary vuole un posizionamento tipo "battaglia navale" basterà posizionarsi sulla relativa riga

Quindi aspettiamo l'intervento di mary.

cari saluti


Domenico
Win 10 - Excel 2016
Post: 1.318
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
23/08/2017 11:26

Dodo
non mi hai capito [SM=g27827]

la battaglia navale funziona
solo che se clicchi sulla colonna D

non si vedono nelle colonne a DX della cella F1

i valori delle righe inerenti alle lettere T e U

più se clicchi su una di queste due i dati vengono completamente
sfalsati

(forse un copia incolla fatto male?)
Post: 63
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
23/08/2017 13:09

Ciao dodo e fede
L'interpretazione è esatta !!! ma sono disperata perchè a casa , durante la pausa pranzo ho constatato che sul pc funziona !! mentre sul lavoro con mac no ! Ed è proprio li che mi serve :-( ho provato a riscrivere il codice da capo ma niente !!!
esistono eventualmente alternative che potrei provare? [SM=x423023]

cari saluti

grazieeee

Marilena
Post: 1.566
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
23/08/2017 18:28

Mary: sorry, non so aiutarti con il mac

Fede: non saprei cosa dirti, a me funziona, a mary (pc win) funziona....

saluti


Domenico
Win 10 - Excel 2016
Post: 64
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
23/08/2017 18:46

Ciao......se mi permettete vorrei provare un ultimo tentativo

ho notato che selezionando direttamente il numero in colonna B la ricerca in riga 1 funziona lo stesso
Non sapendo se il problema consiste nella cella F1 volevo sapere se sarebbe possibile effettuare la ricerca del numero , direttamente dal numero posizionato sulla stessa riga in colonna B sempre partendo al clic dalla colonna D

vi ringrazio molto [SM=x423063]
Saluti

Marilena
Post: 1.568
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
23/08/2017 19:26

ciao
funziona, ma non ti riporta il valore in f1.

A parte questo, quel codice "funziona" per una serie di eventi che non sto qui a spiegare (basta seguirlo in debug per vedere cosa accade).

Ciò premesso, il codice corretto (senza riportare in f1 il valore scelto) è il seguente:
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim i As Long, mVar
 Dim col As Long
 Dim rig As Long
 Application.EnableEvents = False
 If Target.Column = 4 Then
 mVar = Cells(Target.Row, 2)
 rig = 1
 For i = 7 To Cells(rig, Columns.Count).End(xlToLeft).Column
    If Cells(rig, i) = mVar Then
       Application.Goto Cells(1, i), True
       Exit For
    End If
 Next i
 End If
 Application.EnableEvents = True
 End Sub


Ma ho il sospetto che sia l'istruzione application.goto che al "mac" non vada bene.

Quando dici "non funziona" sul Mac che succede ? ignora l'istruzione o che altro ?

Seguilo in debug e fai qualche ricerca in internet o chiedi a qualche forum per il mac.

Personalmente non saprei proporti un "workaround" a quella istruzione.

Saluti



[Modificato da dodo47 23/08/2017 19:32]
Domenico
Win 10 - Excel 2016
Post: 65
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
24/08/2017 11:11

Magnifico ! Ora funziona meravigliosamente anche con Mac. [SM=x423028]

Il codice precedente ignorava l'istruzione, senza andare in debug.

Se ti va un ultimo favore dodo:
è possibile usare lo stesso sistema anche per cercare il valore in verticale partendo da un blocco riquadri sulla riga 55 colonna F ? magari usando "xlUp" al posto di "xlToleft " ?

ho provato a modificare Column con Row, xlToLeft con xlUp ma non riesco a farla funzionare

cari saluti e um milione di grazie
Marilena
Post: 1.572
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
24/08/2017 12:52

mary, non ho capito.
comunque sullo stesso foglio può esserci un solo blocco riquadri.

Fai un esempio ben chiaro per favore.

saluti


Domenico
Win 10 - Excel 2016
Post: 66
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
24/08/2017 19:52

Ciao Rieccomi [SM=x423063]

lavorando oggi sul file sono riuscita a capire meglio quello che potrebbe essermi utile come possibile variante supplementare :

É possibile al posto delle colonne accostare le righe contenenti i numeri in colonna B alla cella 6B ? Selezionando al clic le celle sulla riga 4?

allego file di esempio

cari saluti
Marilena
Post: 67
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
26/08/2017 15:22

ciao a tutti

se è possibile vorrei sostituire la richiesta precedente con una al momento molto più prioritaria che mi sta bloccando il proseguimento del lavoro :-((((

la seguente macro di dodo cerca in riga 1 , al clic sulla colonna D , il valore inserito nella cella posta sulla stessa riga in colonna B e lo affianca alla cella F1
avendo la necessità di allungare di molto la lista posta in colonna D ho riscontrato il problema che se dovessi posizionare , per esempio : la cella D80 sotto il blocco riquadri in riga 1… , al clic mi sposta le righe precedentemente “scrollate “ , evidenziando la cella trovata in riga 1

però penso che potrei ovviare a questo problema se fosse possibile apportare una modifica alla macro che al posto di cercare il valore sempre in riga 1 ( come da me precedentemente richiesto ) , fare in modo che cerchi il valore posizionato sulla riga superiore alla cella selezionata in colonna D
ho provato a fare un file di esempio ,,,,,per favore fatemi sapere se è abbastanza chiaro perchè è importante !

cari saluti
un braccio a tutti

Marilena



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long, mVar
Dim col As Long
Dim rig As Long
Application.EnableEvents = False

If Target.Column = 4 Then
mVar = Cells(Target.Row, 2)
rig = 1
For i = 8 To Cells(rig, Columns.Count).End(xlToLeft).Column
If Cells(rig, i) = mVar Then
Application.Goto Cells(1, i), True
Exit For
End If
Next i
End If
Application.EnableEvents = True
End Sub
Post: 1.574
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
26/08/2017 17:16

ciao
mary, abbi pazienza; vuoi che cliccando per esempio su zz, la cella D80 si ponga immediatamente sotto il blocco riquadri ?

Se è così:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long, mVar
Dim col As Long
Dim rig As Long
Dim mRiga As Long
Application.EnableEvents = False
mRiga = Target.Row
If Target.Column = 4 Then
    mVar = Cells(Target.Row, 2)
    rig = 1
    For i = 8 To Cells(rig, Columns.Count).End(xlToLeft).Column
       If Cells(rig, i) = mVar Then
          Application.Goto Cells(mRiga, i), True
          Exit For
       End If
    Next i
End If
Application.EnableEvents = True
End Sub


saluti



Domenico
Win 10 - Excel 2016
Post: 68
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
26/08/2017 18:23

Grazie mille dodo per la pronta risposta

Visto che alla fine la lista in colonna D sarà piuttosto lunga, quello che vorrei ottenere è che il menu in colonna D rimarebbe nella posizione in cui lo lascio e sposterebbe solo le colonne

Anche se non so se è fattibile, pensavo che questa soluzione sarebbe stata più semplice visto che deve cercare un singolo valore su ogni riga sopra la cella selezionata.
Ma forse mi sbaglio ! [SM=x423023]

Comunque chiedimi volentieri tutti i chiarimenti, che cerco di spiegarmi al meglio.

saluti e grazie
Marilena
Post: 1.577
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
26/08/2017 18:46

ciao
ho capito, ma non sono in grado di aiutarti, sorry

saluti



Domenico
Win 10 - Excel 2016
Post: 558
Registrato il: 02/08/2015
Utente Senior
Excel 2013
OFFLINE
27/08/2017 08:17

Ciao a tutti,

ci ho messo una mezz'oretta per leggere tutte le modifiche della richiesta [SM=x423023]

Comunque, per l'ultima richiesta, si potrebbe usare "ScrollRow",
quindi al codice di Dodo (un saluto) basterebbe aggiungere una riga dopo il ciclo "For i....Next i":
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i As Long, mVar
    Dim col As Long
    Dim rig As Long
    
    Application.EnableEvents = False
    
    If Target.Column = 4 Then
        mVar = Cells(Target.Row, 2)
        rig = 1
        For i = 8 To Cells(rig, Columns.Count).End(xlToLeft).Column
           If Cells(rig, i) = mVar Then
              Application.Goto Cells(1, i), True
              Exit For
           End If
        Next i
        ActiveWindow.ScrollRow = Target.Row
    End If
    Application.EnableEvents = True
End Sub


Ciao
Tore


"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Post: 69
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
27/08/2017 10:43

ciao cromagno ti ringrazio tantissimo e sopratutto dodo per il grandissimo aiuto

il fatto é che su pc tutto ok ..il problema si pone su mac

se vi va di dare un ‘occhiata mi piacerebbe tanto fare un ultimo tentativo ..ho notato che con la macro di dodo se collego le celle in colonna dalla cella attiva fino alla riga 3 funziona perfettamente !

sapreste dirmi se si può aggiungere un codice al vba che cerchi in contemporanea lo stesso numero anche in colonna creando una sorta di riferimento X/Y ?
perchè in questo caso penso di risolvere posizionando il rispettivi valori anche in colonna


allego file con celle collegate

grazie mille a tutti

Marilena
Post: 559
Registrato il: 02/08/2015
Utente Senior
Excel 2013
OFFLINE
27/08/2017 10:56

Ciao,
per il MAC non saprei che consigliarti non potendo provare di persona;
per la tua (ennesima [SM=g27828] ) richiesta... non ho capito cosa vuoi ottenere.


"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Post: 1.578
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
27/08/2017 13:07

Ciao
neanche io ho possibilità di testare sul Mac. Pertanto se sul PC è ok, probabilmente (come già accennato in quanto letto in internet), è l'application.goto che non viene recepita.

Segui in debug e controlla se quella istruzione viene eseguita o no.

Io non conosco dei work-around per riprodurre l'effetto di tale istruzione.

Come ultimo tentativo, prova:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long, mVar
Dim col As Long
Dim rig As Long
Application.EnableEvents = False

 If Target.Column = 4 Then
mVar = Cells(Target.Row, 2)
rig = 1
For i = 8 To Cells(rig, Columns.Count).End(xlToLeft).Column
   If Cells(rig, i) = mVar Then
      Application.Goto Cells(1, i), True
      Cells(Target.Row, i).Select '<<<<<<<<<<<<<<<<<<<<
      Exit For
   End If
Next i
End If
Application.EnableEvents = True
End Sub


Saluti

[Modificato da dodo47 27/08/2017 13:08]
Domenico
Win 10 - Excel 2016
Post: 70
Registrato il: 06/07/2016
Città: BOLZANO
Età: 31
Utente Junior
2010
OFFLINE
27/08/2017 15:31

di nuovo grazie dodo

domani appena rivado in ufficio provo
sarebbe troppo bello se funzionasse :-)

saluti

Marilena



Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
restituisci valore dalla cella attiva in colonna (5 messaggi, agg.: 18/08/2017 19:06)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 11:45. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com