Condividi:        

excel da elenco a discesa a cella origine

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

excel da elenco a discesa a cella origine

Postdi efteam » 27/01/18 09:34

Salve a tutti intanto vorrei ringraziarvi per le utilissime info che ci date, vorrei porre un quesito a voi esperti di excel, io da un elenco a discesa dopo aver selezionato la cella da questo elenco vorrei cliccando sulla cella essere rimandto alla cella di origine è possible fare questo
ringrazio in anticipo chi mi dedicherà un po del suo prezioso tempo
Emanuele
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Sponsor
 

Re: excel da elenco a discesa a cella origine

Postdi Anthony47 » 27/01/18 20:06

Sulla cella che contiene la convalida inserisci un hiperlink che punti alla stessa cella.

Poi tasto dx sul tab col nome del foglio di avoro, scegli Visualizza codice; incolla il seguente codice nel frame vuoto di destra nella finestra dell'editor delle macro.
Codice: Seleziona tutto
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    On Error Resume Next
    dest = Target.Range.Value
    Application.Goto ActiveSheet.Range(dest)
    On Error GoTo 0
End Sub

Torna su excel e prova.

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

Re: excel da elenco a discesa a cella origine

Postdi efteam » 12/02/18 22:26

grazie mille per la risposta cosa intendi per hiperlink
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi Anthony47 » 13/02/18 00:39

Per hyperlink si intende un "collegamento ipertestuale"; per inserirlo: Menu /Inserisci /Collegamento ipertestuale (nel gruppo Collegamenti).

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

Re: excel da elenco a discesa a cella origine

Postdi efteam » 13/02/18 21:47

Provato ma non funziona si può allegare il file? cosi magari ci capiamo meglio
Emanuele
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi Anthony47 » 14/02/18 01:12

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

Allega il file con il tentativo fatto seguendo le mie prime istruzioni, cosi' vediamo che cosa non quadra.

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

Re: excel da elenco a discesa a cella origine

Postdi efteam » 14/02/18 22:27

efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi Anthony47 » 15/02/18 02:16

io da un elenco a discesa dopo aver selezionato la cella da questo elenco vorrei cliccando sulla cella essere rimandto alla cella di origine
Da questa frase io avevo dedotto che in una cella avevi un elenco di convalida contenente tanti indirizzi di cella; scegliendo un valore=un indirizzo avresti voluto saltare a quell'indirizzo.
Dal file allegato invece si capisce che nella cella ci metti dei valori, e vorresti saltare alla cella che contiene quel valore; tutt'altra cosa...

Cancella quello che ti ho detto; quindi rimuovi l'hyperlink inserito nella cella D2.

Fai tasto Dx sul tab col nome del foglio di lavoro, scegli Visualizza codice; copia questo codice e incollalo nel frame vuoto di dx all'interno dell'editor delle macro che cosi' e' stato aperto:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ListArea As String, TargArea As String, C As Range
'
ListArea = "D2:D10"         '<<< L'area in cui ci sono le celle con la convalida
TargArea = "G1:J1000"       '<<< L'area in cui bisogna cercare una corrispondenza
'
If Not Application.Intersect(Target, Range(ListArea)) Is Nothing And Target.Count = 1 Then
    With Range(TargArea)
        Set C = .Find(Target.Value, LookIn:=xlValues)
        If Not C Is Nothing Then
            C.Select
        End If
    End With
End If
End Sub
Le due righe marcate <<< vanno prsonalizzate come da commento.

Poi torna sul foglio excel e prova.

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

Re: excel da elenco a discesa a cella origine

Postdi efteam » 15/02/18 11:29

provato ma non funziona......
http://www.filedropper.com/provacella_1

riallego il fle con le modifiche
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi Anthony47 » 15/02/18 12:40

Perdona: io ti dico di inserire una macro e tu, dopo aver provato, pubblichi un file ".xlsx" (prova cella-1.xlsx) ovviamente senza macro. Che devo pensare?

Domanda: che uso hai fatto delle seguenti istruzioni?
Anthony ha scritto:Fai tasto Dx sul tab col nome del foglio di lavoro, scegli Visualizza codice; copia questo codice e incollalo nel frame vuoto di dx all'interno dell'editor delle macro che cosi' e' stato aperto
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
[. . .]


Dai che ce la facciamo!
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel da elenco a discesa a cella origine

Postdi efteam » 15/02/18 15:33

ok non lo salvavo come macro ok adesso funziona ma....... so di essere un rompiscatole pero a me servirebbe essere rimandato alla cella con un ulteriore clic dopo aver selezionato la casella ti manderei il file su cui lavoro ma ha dei dati sensibili (nomi e cognomi) quindi non posso pubblicarlo su un forum
spero di essermi spiegato allego il file che funziona
grazie mille cmq siamo sulla buona strada
http://www.filedropper.com/provacella_2
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi Anthony47 » 15/02/18 23:48

grazie mille cmq siamo sulla buona strada
Prego; quanto a essere sulla buona strada non ne sono certo ma te lo auguro :diavolo:

so di essere un rompiscatole pero a me servirebbe essere rimandato alla cella con un ulteriore clic dopo aver selezionato la casella
Non sei rompiscatole, solo non valuti le tue esigenze e costringi chi vuole aiutarti a fare e disfare N volte...

Interpreto la tua richiesta in questo modo:
-seleziono tramite l'elenco a discesa un valore
-solo se lo clicco vorrei andare alla cella che contiene il valore selezionato

Lo traduco in questo modo:
-il "salto" alla cella che contiene il valore selezionato avverra' solo se faccio doppioclick sulla cella

Lo realizziamo in questo modo:
-partendo dal foglio su cui lavori...
-... fai tasto dx sul tab col nome del foglio; scegli Visualizza codice
-cancella tutto quanto ci trovi dentro (cioe' il codice della Private Sub Worksheet_Change)
-copia questo codice e incollalo al posto del codice eliminato:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim TargArea As String, C As Range
'
TargArea = "G1:J1000"       '<<< L'area in cui bisogna cercare una corrispondenza
'
Cancel = True
With Range(TargArea)
    Set C = .Find(Target.Value, LookIn:=xlValues)
    If Not C Is Nothing Then
        C.Select
    End If
End With
End Sub

Poi torna su Excel, fai una selezione, fai "doppioclick" sulla cella e vedi l'effetto. Questo effetto non e' limitato alle sole celle che hanno l'elenco a discesa; puoi doppiocliccare su qualsiasi cella e la macro cerchera' se c'e' una corrispondenza nell'area chiamata "TargArea", e se c'e' allora la seleziona.

Questa e' la penultima proposta

Fai sapere....
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel da elenco a discesa a cella origine

Postdi efteam » 16/02/18 09:14

Assolutamente giusto cosi non so come ringraziarti
Grazie mille
Emanuele
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi efteam » 21/02/18 22:03

Antony la tua macro funziona perfettamente ma (ci deve essere sempre un ma purtroppo) quando registro la macro successiva che mi compila il foglio non funziona correttamente il file originale purtroppo ha dei dati sensibili (indirizzi mail e nomi e cognomi)
quindi vorrei evitare di pubblicarlo ce un altro modo in cui possa fartelo avere e spiegarti il tutto?
Emanuele
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi Anthony47 » 22/02/18 00:40

Beh, per cominciare potresti pubblicare il codice della "macro successiva che [ti] compila il foglio"; poi, se le informazioni sensibili non sono importanti per cosa bisogna guardare li puoi eliminare e sostituire con una popolazione di pippo e pippo@dominio.it

Altrimenti chiami un consulente che sara' ben lieto di "aiutarti", oppure spendi un po' di tempo e prepari un file di prova non contenente informazioni personali e pubblichi quello.

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

Re: excel da elenco a discesa a cella origine

Postdi efteam » 23/02/18 10:59

infatti è quello che sto facendo stasera lo pubblico
grazie mille
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi efteam » 23/02/18 22:59

http://www.filedropper.com/patenteapuntixforum
Eccomi qua questo è il file senza quei benedetti nomi e cognomi,
allora io ho registrato una macro che dovrebbe fare questo nel foglio data base la cella B2 copia in automatico un nome dal primo foglio. quindi cliccandoci 2 volte sopra con la macro che hai fatto in precedenza mi sposta sulla cella origine e fin qui funziona tutto correttamente, poi sempre usando i comandi da tastiera mi sposto di una riga in basso aggiungo una riga e vado a copiare dei dati sempre dal primo foglio inserimento,completo una formula pulisco le celle sul altro foglio salvo e esco.e funziona tutta correttamente
tutto ciò collegato al pulsante inserisci che si trova nel primo foglio (inserimento sanzione) il problema dove sta?
stan le fatto che la macro non considera il dato nella cella B2 e quindi non mi aggiunge una riga nel nome che ho selezionato ma la fa sempre nel posto dove io ho fatto la registrazione ossia nella colonna 6, a me servirebbe che si spostasse nella cella corrispondete al nome che io ho selezionato , come fa la macro se la attivo da solo, spero di essere stato chiaro
grazie mille di tutto
Emanuele
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18

Re: excel da elenco a discesa a cella origine

Postdi Anthony47 » 26/02/18 00:49

Devi cambiare la tastiera, perche' "punti", "virgole", "punto e virgola" etc servono per rendere chiare gli scritti e nel tuo (per colpa della tastiera, appunto) devo lavorare di fantasia.

Poi, le tabelle senza un briciolo di intestazione sono incomprensibili.

Inoltre hai sbagliato a inserire il codice per l'invio mail (vedi viewtopic.php?f=26&t=109436&p=642284#p642269): va messo in un Modulo standard del vba, non nel modulo di codice di Foglio1="DatabaseMail"

Poi la macro InvioEmailAny era fatta per essere attivata dal foglio contenete le informazioni (che penso sia data base mail); ma ora nella nuova implementazione tu la vuoi richiamare da un pulsante in altro foglio (Inserimento sanzione); quindi i riferimenti sono tutti a pallino. Per rimediare, tutti i riferimenti alle celle vanno "qualificate" esplicitando anche il nome foglio.
Ad esempio:
Codice: Seleziona tutto
Sub InvioEmailAny()
Dim Dest As String, Subj As String, Msg As String, CC As String, URL As String
Dim dSh As Worksheet
'
Set dSh = Sheets("data base mail")
Dest = dSh.Range("D2") & ";" & dSh.Range("D3") & ";" & dSh.Range("D4")
Subj = dSh.Range("D8")
CC = dSh.Range("D5") & ";" & dSh.Range("D6")
Msg = dSh.Range("D11").Value
'Crea il link MailTo:
URL = "mailto:" & Dest & "?subject=" & Subj & "&cc=" & CC & "&body=" & Msg
'Esegui:
ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus
'
End Sub

Tuttavia anche con questa modifica nel foglio pubblicato non funziona, perche' una delle celle che dovrebbe includere un indirizzo email (I3) c'e' una situazione di errore, che deriva da un Cerca.Vert che cerca in una tabella un valore (a sua volta derivato da un Cerca.Vert) che non esiste.

Questo e' solo un preambolo, visto che il problema di cui parli nasce quando usi il tasto Inserisci su foglio "Inserimento sanzione".
Da quello che scrivi (anzi da quello che deduco) e da quello che fa la macro a me pare che l'errore sia nell'impostazione; mi pare cioe' che tu voglia creare un registro dei richiami pero' suddiviso per destinatari. Questo lo deduco dall'inserimento riga e dalle formule che cerchi di inserire nelle righe aggiunte.

Secondo me questo schema e' concettualmente sbagliato: devi creati un elenco in cui inserisci (in coda a tutto il preesistente) i nuovi richiami con le relative informazioni.
Da questo elenco puoi estrarre con formule le cose che ti interessano:
-il saldo punti (punti iniziali - i punti di tutti i richiami), il numero di richiami, la classifica dei migliori e dei peggiori, la numerosita' delle varie possibili infrazioni, e tutto quello che puo' servire.

Quindi e' inutile che stiamo a capire come si puo' fare per sapere in quale riga il pulsante Inserisci deve posizionare le sue informazioni; d'altra parte un processo principalmente manuale sarebbe un azzardo immaginare cosa ha fatto l'operatore o dare per scontato che segue disciplinatamente le eventuali istruzioni.

Ti do pertanto dei tasselli da inserire al posto giusto:
1) intanto supponiamo che l'elenco di cui ti parlo sia su foglio LOG, da A2

a) puoi individuare quale e' la prima riga libera usando l'istruzione
Codice: Seleziona tutto
myNext = sheets("LOG").Cells(Rows.count,1).End(xlup).Row +1

b) a questo punto puoi copiare un'area e incollarla come valori (cioe' senza portarsi dietro formule o formattazioni) con le istruzioni
Codice: Seleziona tutto
Sheets("Inserimento sanzione").Range(ilRangeCheVuoi).Copy       'es Range("B4:H4")
Sheets("LOG").Cells(myNext, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False

In un'altra zona ti crei una tabella che contiene in colonna A tutti i nominativi; poi in colonna B calcoli la somma di tutti i punti di penalita'; basta usare la funzione Somma.Se, dove il "se" e' Colonna A=nominativo, e la colonna da sommare sara' la colonna G (questo nell'ipotesi che in LOG ci hai copiato "B4:H4")
Il punteggio corrente sara' la sottrazione tra i punti iniziali e le penalita' "guadagnate".

Se hai anche una fase di "attribuzione punti", questi possono essere inseriti nello stesso elenco (su LOG) con i punteggi negativi (visto che le penalita' sono punti positivi); oppure su LOG ma in altra colonna.

Ti raccomando anche, per quanto detto all'inizio, di mettere ordine tra le tue tabelle, innanzitutto mettendo delle chiare intestazioni di colonna. Ma poi dando a esse una logica; ad esempio non capisco perche' lo stesso nominativo (es ciao) figura in 6 tabelle diverse: perche' non ne basta 1 (una sola) con tutte le informazioni relative?

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

Re: excel da elenco a discesa a cella origine

Postdi efteam » 26/02/18 21:07

perfetto ho risolto esattamente cosi creando un elenco a lato e usato la funzione somma
ti ringrazio esponenzialmente
in effetti il file copia che ti ho fatto era difficilmente comprensibile anche per me che lo fatto
cmq tutto risolto ora il file va alla grande
grazie mille
Emanuele
efteam
Utente Junior
 
Post: 15
Iscritto il: 27/01/18 09:18


Torna a Applicazioni Office Windows


Topic correlati a "excel da elenco a discesa a cella origine":


Chi c’è in linea

Visitano il forum: Nessuno e 51 ospiti