|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jun 2006
Città: Bologna
Messaggi: 17
|
[Excel] funzioni con riferimenti dinamici
Ciao a tutti, volevo sapere se c'era un modo per poter dare ad una funzione un riferimento che cambia dinamicamente es: =A(B12) [la sintassi così non è giusta] in sostanza vorrei che mi prendesse come colonna A e come n° di riga il contenuto della cella B12. Quindi nel caso B12 sia 3, alla fine va a vedere in A3.
Spero di essere stato abbastanza chiaro Qualche idea? grazie
__________________
AMD AthlonXP 3000+, 2x512MB DDR PC3200 in dual channel, Asus A7N8x-E Deluxe, Ati Radeon 9600pro AGP 8x 256Mb, 2 Maxtor SATA 160GB e 200Gb + 1 Maxtor PATA 250GB, Audio NVidia Nfrorce2 itegrato, Philips DVDRW1640, Samsung CDRW523252, Hauppauge wintv 878/9, Windows XP Sp2, Nod32 Antivirus, Comodo personal Firewall |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Imperia
Messaggi: 1822
|
Ciao, allora
1)devi andara in modalità vb 2) devi creare un "moduo" 3) incolla la seguente funzione Public Function GETVALORE(colonna, riga) GETVALORE = Range(colonna + CStr(riga)) End Function utilizza la funzione per avere il risutalto, ne tuo caso è =getvalore("a";b12) ciao |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jun 2006
Città: Bologna
Messaggi: 17
|
grazie ho anche implementato la funzione per colonne
solo che c'ho messo un po a capire che vb stava per visual basic
__________________
AMD AthlonXP 3000+, 2x512MB DDR PC3200 in dual channel, Asus A7N8x-E Deluxe, Ati Radeon 9600pro AGP 8x 256Mb, 2 Maxtor SATA 160GB e 200Gb + 1 Maxtor PATA 250GB, Audio NVidia Nfrorce2 itegrato, Philips DVDRW1640, Samsung CDRW523252, Hauppauge wintv 878/9, Windows XP Sp2, Nod32 Antivirus, Comodo personal Firewall |
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Jun 2006
Città: Bologna
Messaggi: 17
|
Va beh già che ho aperto una discussione ne approfitto per aggiungere una domanda inerente all'argomento
Come posso fare per far si che ci sia un pulstante che incrementi/decrementi la colonna a cui si riferisce la funzione sotto: Public Function GETVALORE(colonna, riga) GETVALORE = Range(colonna + CStr(riga)) End Function cioè invece che mettere: A1: C C1: 7 D1: 8 E1: 12 A2: =getvalore(A1,"1") ==> A2: 7 e in seguito modificare A1: C in A1: D per far venire A2: 8 mettere un pulsante che incrementa/decrementa direttamente la collonna per evitare di scrivere ogni volta la colonna successiva Spero di essere stato abbastanza comprensiblile
__________________
AMD AthlonXP 3000+, 2x512MB DDR PC3200 in dual channel, Asus A7N8x-E Deluxe, Ati Radeon 9600pro AGP 8x 256Mb, 2 Maxtor SATA 160GB e 200Gb + 1 Maxtor PATA 250GB, Audio NVidia Nfrorce2 itegrato, Philips DVDRW1640, Samsung CDRW523252, Hauppauge wintv 878/9, Windows XP Sp2, Nod32 Antivirus, Comodo personal Firewall |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Jun 2006
Città: Bologna
Messaggi: 17
|
Ok magari è un po complicata come richiesta, cmq sapreste dirimi qual'è l'identificativo della posizione di un pulsante all'interno di un foglio?
Mi spiego meglio: con range("a12") mi rifersico alla cella A12 per eventuali cambiamenti... se io ho creato un tasto in A12 come faccio a farlo capire ad una funzione? E/O sapreste dirmi dove trovare un elenco con tutte gli "identificativi" (non so come definirli... mi riferisco a cose tipo range() CStr()) che usa visual basic per excel grazie
__________________
AMD AthlonXP 3000+, 2x512MB DDR PC3200 in dual channel, Asus A7N8x-E Deluxe, Ati Radeon 9600pro AGP 8x 256Mb, 2 Maxtor SATA 160GB e 200Gb + 1 Maxtor PATA 250GB, Audio NVidia Nfrorce2 itegrato, Philips DVDRW1640, Samsung CDRW523252, Hauppauge wintv 878/9, Windows XP Sp2, Nod32 Antivirus, Comodo personal Firewall |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Imperia
Messaggi: 1822
|
Ciao, allora
i pulsanti non hanno identificati all'interno del folgio di excel, puoi solo determinarne la poisizione dalle coordinate, che trovi nelle proprietà dell'oggetto (il puslante è un oggetto). Per quanto riguarda le istruzioni, le torvi nella guida in linea di Visual basic per excel nel frattempo ci guardo per il tuo problema |
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Mar 2007
Messaggi: 13
|
Ragazzi un picolo quesito ce l'ho pure io
avendo due date di riferimento esiste una funzione che mi permetta di fare un conteggio dei giorni???? grazie |
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Jun 2006
Città: Bologna
Messaggi: 17
|
In sostanza volevo far si che un pulsante incrementasse il n° nella cella a sinistra di 1.
La macro l'ho già fatta, il problema è che la dovrei modificare manualmente a seconda di dove si trova un pulsante e quindi per evitare ciò vorei che lo facesse automaticamente. La macro che ho fatto è questa Sub INC_AY1() Range("AY1") = Range("AY1") + 1End Sub
__________________
AMD AthlonXP 3000+, 2x512MB DDR PC3200 in dual channel, Asus A7N8x-E Deluxe, Ati Radeon 9600pro AGP 8x 256Mb, 2 Maxtor SATA 160GB e 200Gb + 1 Maxtor PATA 250GB, Audio NVidia Nfrorce2 itegrato, Philips DVDRW1640, Samsung CDRW523252, Hauppauge wintv 878/9, Windows XP Sp2, Nod32 Antivirus, Comodo personal Firewall |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Imperia
Messaggi: 1822
|
Ti chiedo maggiori info
tu hai + di un pulsante ??? 1 per ogni rigo ???' se si allora puoi usare il nome del pulsante per determinare qualre rigo utilizzare es. puoi chiamre il pulsante cmd_ay1 ed utilizzare la funzione right(me.cmd_ay1.name;3) per determinare il nome della cella assegnata a quel pulsante. |
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Jun 2006
Città: Bologna
Messaggi: 17
|
si ho + tasti il problema stava infatti nell'evitare di dover fare una macro per ogni tasto e metterne una "generica". Anche col nome del tasto, come hai suggerito te, è un po lunghina come cosa... ci sono una 50ina di tasti
__________________
AMD AthlonXP 3000+, 2x512MB DDR PC3200 in dual channel, Asus A7N8x-E Deluxe, Ati Radeon 9600pro AGP 8x 256Mb, 2 Maxtor SATA 160GB e 200Gb + 1 Maxtor PATA 250GB, Audio NVidia Nfrorce2 itegrato, Philips DVDRW1640, Samsung CDRW523252, Hauppauge wintv 878/9, Windows XP Sp2, Nod32 Antivirus, Comodo personal Firewall Ultima modifica di Dav2K : 10-03-2007 alle 01:40. |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Imperia
Messaggi: 1822
|
allora fai una funzione generica
sul click del tasto che richiami la funzione specifica sub tasto_click call gernica(tasto.name) end sub private sub generica(tastonome) right(tastonome;3) getvalore(etc.. end sub |
|
|
|
|
|
#12 |
|
Junior Member
Iscritto dal: Jun 2006
Città: Bologna
Messaggi: 17
|
Mi da errore di run-time '424' Nessun oggetto
la macro è questa: Sub tasto_click() Call generica(tasto.Name) <--- questo me lo evidenzia di giallo End Sub Private Sub generica(tastonome) right(tastonome;3) Range("L1") = 1 End Sub
__________________
AMD AthlonXP 3000+, 2x512MB DDR PC3200 in dual channel, Asus A7N8x-E Deluxe, Ati Radeon 9600pro AGP 8x 256Mb, 2 Maxtor SATA 160GB e 200Gb + 1 Maxtor PATA 250GB, Audio NVidia Nfrorce2 itegrato, Philips DVDRW1640, Samsung CDRW523252, Hauppauge wintv 878/9, Windows XP Sp2, Nod32 Antivirus, Comodo personal Firewall |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:41.



















