> Mi servirebbe una macro di questo tipo:
> ho una tabella in cui sono riportati determinati valori (si tratta di valori
> fissi, non formule) nella colonna A e altri valori (anche in questo caso
> valori fissi) nella colonna B. La macro dovrebbe copiare il valore che è
> presente in una cella della colonna A (e dovrei indicare io di volta in
> volta quale cella copiare, ad esempio A1 o A2 o A3, ecc.) e inserirlo nella
> cella A1 di un'altro foglio Excel. Lo stesso per i valori della colonna B
> che andranno copiati nella cella B1 dell'altro foglio Excel.
ciao,
senza macro?
propongo questa soluz:
Nel foglio di destinazione, in cella A1:
=SE(SINISTRA(C1;1)="A";INDIRETTO("Foglio1!"&C1);"")
in cella B1:
=SE(SINISTRA(C1;1)="B";INDIRETTO("Foglio1!"&C1);"")
Non dovrai far altro che digitare in cella C1 il riferimento cella da
copiare (da Foglio1).
--
ciao
giovanna
..........................................
http://www.riolab.org
..........................................
"Paolo" ha scritto:
Ciao Paolo.
Cerca su questo NG: doppiocli dovresti trovare una macro che utilizzando
il doppioclicsx su una cella, la copia in un foglio diverso.
Comunque ci dovrebbe essere una logica qualsiasi secondo la quale effetti la
copia di quella cella
Eliano
Elby
Paolo ha scritto:
"Paolo" ha scritto:
Ciao Paolo.
Innanzi tutto chiedo scusa ad Elio [ciao] per l'intromissione, ma a
giudicare dalla parte finale del tuo post mi sembra di capire che non hai una
grande dimestichezza con il Vba; mi sono permesso quindi di sostituire i
MsgBox con le istruzioni per la copia delle celle da Foglio1 a Foglio2.
Con Alt+F11 accedi al Vbe e copiala nel modulo del Foglio1.
'<------------------------------
Option Explicit
' Macro By Elio, persona di buon cuore.:-))
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim isect As Range
Dim cel As Range
Set isect = Intersect(Range("A:A"), Target)
If isect Is Nothing Then
' non fare nulla
Else
For Each cel In Sheets(2).Range("A:A")
If cel.Value = "" Then
cel.Value = Target.Value
Exit Sub
End If
Next
End If
Set isect = Intersect(Range("B:B"), Target)
If isect Is Nothing Then
' non fare nulla
Else
For Each cel In Sheets(2).Range("B:B")
If cel.Value = "" Then
cel.Value = Target.Value
Exit Sub
End If
Next
End If
End Sub
'--------------------------->
Esci dal Vbe e torna al foglio1 di excel.
Per utilizzarla fai doppio clic sx su una qualsiasi cella delle colonne A o
B del foglio1 e queste verranno copiate nella prime cella disponibili del
foglio2, colonne A o B.
Non l'ho provata perchè su questa carriola non ho excel, per cui verifica il
funzionamento e facci sapere.
Eliano
eh, no, per le mie esigenze mi ci vuole proprio una macro
Comunque ti ringrazio, ciao
dove č scritto "sostituire con proprio codice" che devo scrivere? Scusami,
ma sono un po' a digiuno di vba
esatto ;-)
> Per utilizzarla fai doppio clic sx su una qualsiasi cella delle
> colonne A o B del foglio1 e queste verranno copiate nella prime cella
> disponibili del foglio2, colonne A o B.
la tua macro funziona, però la cella di destinazione non deve essere la
prima cella disponibile nella colonna A (o B) del foglio2, ma deve essere
sempre la stessa cella del foglio 2 (rispettivamente cella A1 e cella B1).
Inoltre il foglio di destinazione nel mio caso è presente in un altro file
.xls, quindi ho inserito la stringa:
Windows("Cartel2.xls").Activate
'---------------------
la tua macro funziona, però la cella di destinazione non deve essere la
prima cella disponibile nella colonna A (o B) del foglio2, ma deve essere
sempre la stessa cella del foglio 2 (rispettivamente cella A1 e cella B1).
Inoltre il foglio di destinazione nel mio caso è presente in un altro file
.xls, quindi ho inserito la stringa:
Windows("Cartel2.xls").Activate
'---------------------
Prova:
'=============>>
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
Dim iSect As Range
Dim destWb As Workbook
Dim destSH As Worksheet
Set destWb = Workbooks("Cartel2.xls") '<<=== da CAMBIARE
Set destSH = destWb.Sheets("Foglio2") '<<=== da CAMBIARE
Set iSect = Intersect(Range("A:B"), Target)
If Not iSect Is Nothing Then
With iSect
destSH.Range(.Address).Value = .Value
End With
End If
End Sub
'<<=============
---
Regards,
Norman
grazie per l'intervento, ma cosě la cella di destinazione č la stessa cella
in cui č contenuto il valore da copiare, cioč se faccio doppio click su A2,
il valore in A2 viene copiato nella cella A2 del foglio 2 del file
cartel2.xls, mentre invece a me serve che copi sempre nella cella A1 del
foglio 2 del file cartel2.xls, indipendentemente da dove faccio il doppio
click
"Paolo" ha scritto:
> ..xls, quindi ho inserito la stringa:
>
> Windows("Cartel2.xls").Activate
>
>
>
Ciao Paolo.
La macro non è mia, ma di Elby e se ho capito bene dovresti aver risolto il
problema.
Vedo che usi .Activate, quindi il file di destinazione dovrebbe essere
aperto, per cui la macro dovrebbe diventare:
Option Explicit
' Macro (base By Elio = Elby)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim isect As Range
Dim cel As Range
Dim destino As Range
Set isect = Intersect(Range("A:A"), Target)
Application.ScreenUpdating = False
If isect Is Nothing Then
' non fare nulla
Else
For Each cel In Sheets(2).Range("A:A")
If cel.Value = "" Then
Workbooks("Cartel2.xls").Sheets(2).Range("A1") = Target.Value
' cel.Value = Target.Value
' Target.Select
' Target.Offset(0, 3).Value = "da " & Target.Address & " a Foglio2-" &
cel.Address
Exit Sub
End If
Next
End If
Set isect = Intersect(Range("B:B"), Target)
If isect Is Nothing Then
' non fare nulla
Else
For Each cel In Sheets(2).Range("B:B")
If cel.Value = "" Then
Workbooks("Cartel2.xls").Sheets(2).Range("B1") = Target.Value
' cel.Value = Target.Value
' Target.Select
' Target.Offset(0, 4).Value = "da " & Target.Address & " a Foglio2-" &
cel.Address
Exit Sub
End If
Next
End If
End Sub
Solo una cosa: oltre a specificare che hai usato .Activate sarebbe bene che
tu specificassi in quale punto della macro hai inserito quella istruzione,
grazie.
Eliano
Allora, avevo mal capito!
Prova invece:
'=============>>
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
Dim iSect As Range
Dim destWb As Workbook
Dim destSH As Worksheet
Set destWb = Workbooks("Cartel2.xls") '<<=== da CAMBIARE
Set destSH = destWb.Sheets("Foglio2") '<<=== da CAMBIARE
Set iSect = Intersect(Range("A:B"), Target)
If Not iSect Is Nothing Then
With iSect
destSH.Cells(1, iSect.Column).Value = .Value
End With
End If
End Sub
'<<=============
Regards,
Norman
perfetto, funziona sia questa, sia quella di Elby, indicatami da Eliano
perfetto, funziona sia questa, sia quella di Norman Jones.
> Solo una cosa: oltre a specificare che hai usato .Activate sarebbe
> bene che tu specificassi in quale punto della macro hai inserito
> quella istruzione, grazie.
l'aveva messo prima di For Each cel In Sheets(2).Range("A:A")
"Norman Jones" ha scritto:
> Ciao Paolo,
>
> > grazie per l'intervento, ma così la cella di destinazione è la stessa
> > cella
> > in cui è contenuto il valore da copiare, cioè se faccio doppio click su
> > A2,
> > il valore in A2 viene copiato nella cella A2 del foglio 2 del file
> > cartel2.xls, mentre invece a me serve che copi sempre nella cella A1 del
> > foglio 2 del file cartel2.xls, indipendentemente da dove faccio il doppio
> > click
>
> Allora, avevo mal capito!
>
> Prova invece:
> '=============>>
> Private Sub Worksheet_BeforeDoubleClick _
> (ByVal Target As Range, Cancel As Boolean)
> Dim iSect As Range
> Dim destWb As Workbook
> Dim destSH As Worksheet
>
> Set destWb = Workbooks("Cartel2.xls") '<<=== da CAMBIARE
> Set destSH = destWb.Sheets("Foglio2") '<<=== da CAMBIARE
>
> Set iSect = Intersect(Range("A:B"), Target)
>
> If Not iSect Is Nothing Then
> With iSect
> destSH.Cells(1, iSect.Column).Value = .Value
> End With
> End If
> End Sub
> '<<=============
>
Ciao Norman.
("mal capito = capito male", ma il significato era chiarissimo.)
Per la macro, bella, compatta, completa ed essenziale; grazie.
Ma, Norman, non si potrebbe scrivere una macro che agisce solo con un
fischio ?
Tipo: pensi al problema, emetti un fischio ed Excel esegue quello a cui stai
pensando ! :-8)
E come disse il Poeta:"Men vo sentendomi insultare" (sparate al petto,
please!)
Eliano
--
Regards,
Norman
"eliano" <eli...@discussions.microsoft.com> wrote in message
news:1FA5F4B9-D189-4F70...@microsoft.com...
>
>
> "Norman Jones" ha scritto:
>
>> Ciao Paolo,
>>
>> > grazie per l'intervento, ma cosě la cella di destinazione č la stessa
>> > cella
>> > in cui č contenuto il valore da copiare, cioč se faccio doppio click su
> ("mal capito = capito male", ma il significato era chiarissimo.)
Grazie!
> Ma, Norman, non si potrebbe scrivere una macro che agisce solo con un
> fischio ?
> Tipo: pensi al problema, emetti un fischio ed Excel esegue quello a cui
> stai
> pensando ! :-8)
Ma non hai letto di Excel13?!
---
Regards,
Norman
Grazie a tutti per l'aiuto
"Norman Jones" ha scritto:
No, Norman, disgraziatamente ho gli occhiali in manutenzione, ma appena il
maniscalco avrà terminato la riparazione, provvederò ad informarmi sulle
novità di Excel.
(maniscalco = operaio che attacca i ferri agli zoccoli dei cavalli, muli,
asini, equini, eliani in genere; si occupa anche dei finimenti dei medesimi).
:-))
Saluti
Eliano
> (maniscalco = operaio che attacca i ferri agli zoccoli dei cavalli, muli,
> asini, equini, eliani in genere; si occupa anche dei finimenti dei medesimi).
béh, Eliano... questa mi ha strappato proprio una risata...
sei tutto matto! :-D :-D :-D
"Paolo" ha scritto:
> eliano ha scritto:
> > Ciao Paolo.
> > La macro non è mia, ma di Elby e se ho capito bene dovresti aver
OK Paolo, ma se la posizioni in quel punto, nel caso tu debba copiare sia un
dato della colonna A che un dato della colonna B, dopo la copia di A viene
attivata la Cartel2, per cui sei costretto a tornare sul file di input per
copiare la cella in B.
Se non vuoi questo, fai delle prove per risolvere questo inghippino; non so
quale versione stai usando, ma collegherei l' attivazione di Cartel2, con un
semplice If, al range fuori da intersect, in modo che:
copi da colonna A
copi da colonna B
clicchi su <> da A o B
funziona anche se copi solo A o B e funge per tutte le versioni di macro
disponibili.
Eliano
Io vorrei che, al doppio click del mouse su una qualsiasi delle celle della
colonna C, il valore in esso contenuto sia copiato nella cella B10 e nella
cella K10 di TUTTI I FOGLI di un altro file (ad esempio, file2.xls).
Invece, al doppio click del mouse su una qualsiai delle celle della colonna
D, il valore in esso contenuto deve essere copiato nella cella B1 di TUTTI I
FOGLI di file2.xls
Come devo modificare la macro secondo queste mie esigenze?
"giovanna" ha scritto:
> Scriveva eliano nel
> <1123382A-C161-4D5D...@microsoft.com>, del 25/08/2006:
>
>
> > (maniscalco = operaio che attacca i ferri agli zoccoli dei cavalli, muli,
> > asini, equini, eliani in genere; si occupa anche dei finimenti dei medesimi).
>
> béh, Eliano... questa mi ha strappato proprio una risata...
> sei tutto matto! :-D :-D :-D
>
Ciao Giovanna.
Ricevere una macro funzionante o riuscire a far sorridere una donna
rappresenta un ottimo livello di gratificazione; scatenare una risata è il
massimo, grazie.
Ma adesso, cara compagna di viaggio, ricomponiamoci: Nonno Mauro ci
ascolta,:-8)
Eliano
Se invece di click e doppio click
(in se *pericolosi* perchè potremmo
fare click o doppio click per errore),
due bei pulsanti di scelta rapida tipo
CTRL+a e CTRL+s ?
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
Più che altro ti vede.
E sei ancora con quei ridicoli bermuda...
Mauro Gamberini wrote:
> Se invece di click e doppio click
> (in se *pericolosi* perchč potremmo
"raul" ha scritto:
> Anche a me servirebbe una macro simile, però il problema si complica. Anche
> io ho due file Excel come Paolo. Questo è una semplificazione del file 1
> dove sono contenuti dei codici nella colonna C e nomi nella colonna D:
> http://img233.imageshack.us/img233/8526/1tj9.jpg
>
> Io vorrei che, al doppio click del mouse su una qualsiasi delle celle della
> colonna C, il valore in esso contenuto sia copiato nella cella B10 e nella
> cella K10 di TUTTI I FOGLI di un altro file (ad esempio, file2.xls).
> Invece, al doppio click del mouse su una qualsiai delle celle della colonna
> D, il valore in esso contenuto deve essere copiato nella cella B1 di TUTTI I
> FOGLI di file2.xls
>
Ciao Raul.
Ti consiglierei di scrivere da te la tua macro, dal momento che hai tutti i
dati necessari per farlo; quando la tua macro funziona, comparala con quella
che ti fornirà a breve Mauro, esamina le differenze aiutandoti con la guida
in linea acquistando così conoscenze che forse al momento non hai, e prova a
riscriverla in maniera autonoma pensando unicamente al progetto e magari
seguendo un metodo diverso.
Così facendo si può correre anche il rischio di imparare; come sempre,
opinione personalissima.
Eliano
Eliano
>> Io vorrei che, al doppio click del mouse su una qualsiasi delle celle
>> della
>> colonna C, il valore in esso contenuto sia copiato nella cella B10 e
>> nella cella K10 di TUTTI I FOGLI di un altro file (ad esempio,
>> file2.xls). Invece, al doppio click del mouse su una qualsiai delle
>> celle della colonna
>> D, il valore in esso contenuto deve essere copiato nella cella B1 di
>> TUTTI I
>> FOGLI di file2.xls
>>
>> Come devo modificare la macro secondo queste mie esigenze?
>>
>
> Se invece di click e doppio click
> (in se *pericolosi* perchè potremmo
> fare click o doppio click per errore),
> due bei pulsanti di scelta rapida tipo
> CTRL+a e CTRL+s ?
è possibile farlo con una macro?
"Mauro Gamberini" ha scritto:
> > Ma adesso, cara compagna di viaggio, ricomponiamoci: Nonno Mauro ci
> > ascolta,:-8)
> >
>
> Più che altro ti vede.
> E sei ancora con quei ridicoli bermuda...
>
La privacy, Mauro, la privacy!
> Ciao Raul.
> Ti consiglierei di scrivere da te la tua macro, dal momento che hai tutti
i
> dati necessari per farlo; quando la tua macro funziona, comparala con
quella
> che ti fornirà a breve Mauro, esamina le differenze aiutandoti con la
guida
> in linea acquistando così conoscenze che forse al momento non hai, e prova
a
> riscriverla in maniera autonoma pensando unicamente al progetto e magari
> seguendo un metodo diverso.
> Così facendo si può correre anche il rischio di imparare; come sempre,
> opinione personalissima.
Scusa se ti rispondo qua, ma il server tin si è perso qualche messaggio e ho
potuto vedere la tua risposta solo su google groups. Comunque ho già provato
a scrivere la macro da solo, ma non ci sono riuscito (o meglio ci sono
riuscito solo in parte), perciò ho visto questo thread che trattava un
problema simile al mio e mi sono accodato. Ovviamente la voglia di imparare
c'è sempre, e auspico di arrivare ai vostri livelli.
Comunque ringrazio già da subito chi saprà aiutarmi