Aiuto per creazione macro
Hai un problema con Excel? 
Aiuto per creazione macro !
di Sal (utente non iscritto) data: 22/06/2012
Ciao a tutti
ho bisogno di un aiuto da parte di esperti del calibro di patel o xxx o altri che in passato mi hanno già aiutato con la creazione di macro.
vorrei creare una macro che faccia quello che espongo sotto:
nel foglio1 colonna a1 ho un elenco dove in ogni cella ci sono più informazioni, esempio:
a
_____________________
1 a944 bologna bo 40100
2 d643 foggia fg 81100
3 a001 abano terme pd
4 a014 acate rg
5 a025 aci bonaccorsi ct
6 a026 aci castello ct
7 a027 aci catena ct
8 a029 aci sant'antonio ct
9 a031 acquacanina mc
10 a032 acquafondata fr
11 a033 acquaformosa cs
e così via . . .
faccio un esempio:
devo cercare il comune aci castello
ora ho un userform1 con varie textbox
nella textbox1 scrivo aci,
ho creato un bottone (che ho chiamato conferma comune) che quando ci clicco su mi deve cercare la parola scritta (nel caso aci) nell’elenco, chiedere conferma del tipo: è’ il comune cercato? con le opzioni si e no,
se do no va avanti con la ricerca fino alla prossima stringa che contiene la stessa parola (aci)
se do si mi deve inviare in un’altra textbox2 la stringa intera dell’elenco che contiene il comune cercato con la la parola aci:
a026 aci castello ct
spero che non sia una macro tanto complicata e di essere stato abbastanza chiaro
un grazie a tutti
ciao sal
di Patel (utente non iscritto) data: 22/06/2012
Allega il tuo file
di Sal (utente non iscritto) data: 22/06/2012
Ciao patel
ti allego il file che ho cominciatoa a creare
se entri in "anagrafica soggetti"
poi "inserisci nuovo soggetto"
poi clicchi su calcola cod. fisc.
quando ho creato il c.f. e faccio invia
mi blocca l'userform di destinazione dati
infatti se poi invio al foglio excel mi da errore
e se provi a spostare l'userform mi fa casino.
se non clicco su calcola cod. fisc. allora va tutto bene
il problema sta nel bottone "calcola cod.fisc."
per questo volevo rifarlo nuovo
dovrebbe essere la macro "cerca"
premetto che le macro per il c.f. le ho trovate in internet e le ho importate nel mio file
ciao e grazie
di Sal (utente non iscritto) data: 22/06/2012
Scusa patel prima ho sbagliato:
il casino me lo fa quando clicco - nell'anbito del calcolo del codice fiscale - sul bottone: conferma comune (usa la macro "cerca")
se il comune lo metto dall'elenco a tendina, calcolo il c.f. e invio va tuto bene.
il problema sta nella ricerca e conferma del comune.
grazie ciao
sal
di Patel (utente non iscritto) data: 22/06/2012
Il calcolo del cf mi funziona, mi va in errore durante l'invio nella sub
private sub cmdinvia_click() perché sbagli nel definire l'ultima riga occupata, dovresti modificare così:
Private Sub CmdInvia_Click()
If TxtFax.Text <> "" Then
numriga = Cells(Rows.Count, "B").End(xlUp).Row
........... |
di Sal (utente non iscritto) data: 23/06/2012
Ciao
ho provato a riscrivere la sub cmdinvia nel modo che mi hai indicato tu, ma mi da lo stesso errore
poi a me la sub come l'avevo fatta io funziona se non calcolo il c.f. e funziona anche se il c.f. lo calcolo senza intervenire con il bottone "conferma comune"
solo se clicco il bottone conferma comune mi sii impalla l'usefìrform frminserisci.
comunque grazie lo stesso per la risposta
ciao
sal
di Patel (utente non iscritto) data: 23/06/2012
Te lo fa con tutti i comuni ? io ho provato con livorno e mi ha funzionato
di Sal (utente non iscritto) data: 23/06/2012
Si con tutti i comuni, anche con livorno
se nel primo userform il c,f, lo scrivo io a mano, funziona bene
se calcolo il cod. fisc. con il bottone "calcola c.fisc.", se il comune lo prendo dall'elenco a tendina allora funziona tutto bene, riesco ad inviare i dati all'userform "frminserisci" e poi da qui al foglio excel
ma se scrivo il comune nella stringa precedente all'elenco a tendina e clicco su "conferma comune" riesco a inviare i dati nell'userform frminserisci ma poi da qui quando clicco invio per inviare i dati al foglio excel mi da errore,
se provo a spostare l'userform mi fa tutte le scie dell'userform, mi si impalla e da errore
se vuoi mi dai la tua mail che ti mando il file così ci guardi e ci lavori per bene?
ciao grazie
di Patel (utente non iscritto) data: 24/06/2012
Il file ce l'ho già, lo hai allegato, ma non è facile per me ricostruire tutta la logica che hai seguito, questo è il difetto delle userform, la scarsa leggibilità del codice
di Sal (utente non iscritto) data: 24/06/2012
Ciao
lo so che è difficile
tu che sei esperto cerca di studiare la sub "cerca" nel modulo110
quella non l'ho creata io, l'ho presa da un programma per c.f. su internet
secondo me è lì che c'è qualcosa che blocca
comunque grazie lo stesso
ciao
sal
di Patel (utente non iscritto) data: 25/06/2012
Per capirci qualcosa dovresti allegare una versione che non usi le userform prelevando i dati di input da un foglio, in modo da poter analizzare le varie sub senza doversele cercare dappertutto.
di Patel (utente non iscritto) data: 25/06/2012
Comunque io insisto, devi modificare la sub così
private sub cmdinvia_click()
if txtfax.text <> "" then
numriga = range("b4").end(xlup).row
txtnota.text = (0 & numriga - 3)
txttitolo.text = txtfax.text + " " + txtcell.text
range("b" & numriga + 1) = txttitolo.text
range("d" & numriga + 1) = txtnota.text
range("e" & numriga + 1) = txtloc.text
range("f" & numriga + 1) = txtprov.text
range("g" & numriga + 1) = txttel.text
range("h" & numriga + 1) = txtfax.text
range("i" & numriga + 1) = txtcell.text
range("j" & numriga + 1) = txtpiva.text
range("k" & numriga + 1) = txtcfisc.text
range("l" & numriga + 1) = txtmail.text
range("m" & numriga + 1) = combobox1.text
range("n" & numriga + 1) = txtweb.text
range("o" & numriga + 1) = txtbanca.text
range("p" & numriga + 1) = txtiban.text
range("q" & numriga + 1) = txtnote.text
range("r" & numriga + 1) = combobox2.text
range("s" & numriga + 1) = txtdecesso.text
else
numriga = cells(rows.count, "b").end(xlup).row
txtnota.text = (0 & numriga - 3)
txttitolo.text = txtfax.text + "" + txtcell.text
range("b" & numriga + 1) = txttitolo.text
range("d" & numriga + 1) = txtnota.text
range("e" & numriga + 1) = txtloc.text
range("f" & numriga + 1) = txtprov.text
range("g" & numriga + 1) = txttel.text
range("h" & numriga + 1) = txtfax.text
range("i" & numriga + 1) = txtcell.text
range("j" & numriga + 1) = txtpiva.text
range("k" & numriga + 1) = txtcfisc.text
range("l" & numriga + 1) = txtmail.text
range("m" & numriga + 1) = combobox1.text
range("n" & numriga + 1) = txtweb.text
range("o" & numriga + 1) = txtbanca.text
range("p" & numriga + 1) = txtiban.text
range("q" & numriga + 1) = txtnote.text
range("r" & numriga + 1) = combobox2.text
range("s" & numriga + 1) = txtdecesso.text
end if
' se vuoi ordinare per soggetto
'range("b5:s60000").select
'selection.sort key1:=range("b5"), order1:=xlascending, header:=xlguess, _
'ordercustom:=1, matchcase:=false, orientation:=xltoptobottom
range("b5").select
' se vuoi salvare attivare "activeworkbook.save
' activeworkbook.save
unload me
end sub
di Sal (utente non iscritto) data: 25/06/2012
Ciao patel
ho risolto in parte il problema modificando la mia sub (non mi da più l'errore che mi blocca la sub) aggiungendo in cima alla sub
"sheets("nota").activate"
ho provato anche la tua sub e funziona (sempre in parte)
sia con la mia modificata che con la tua
mi trasmette i dati nel foglio excel solo dopo essere uscito a mano da tutte le sub precedenti fino ad arrivare solo al foglio excel
quando faccio invia mi rimane nel sottofondo la sub "cmdinvia"
grazie comunque per l'aiuto e l'interesse che hai dedicato
ciao
sal
Vuoi Approfondire?