Condividi:        

SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

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

SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi raffygrp » 18/03/10 14:54

AVREI BISOGNO DI UN AIUTO :
PER il FILE CHE RIPORTO ALL'INIDIRZZO IN BASSO ( CHE USO PER FARE I PREVENTIVI ) MI OCCORRE UN MACRO CHE MI PERMETTA DI COPIARE L'INTERA RIGA CHE TROVO NEI PRIMI FOGLI ( ED_01 OPPURE ED_02 ; TIENI PRESENTE CHE QUESTO NOME PUò VARIARE A SECONDA DEL LISTINO CHE OTTENGO ) E LA RICOPI NELLA PRIMA RIGA VUOTA ( DOPO LA RIGA 10 ) DEL FOGLIO "RPEVENTIVO".
QUESTA MACRO DOVREBBE ESEGUIRSI QUANDO CLICCO DUE VOLTE SUL NUMERO CHE IDENTIFICA LA "TARIFFA" ( E.20.02.A ) NEI PRIMI FOGLI.

http://www.megaupload.com/?d=H75RJFTI


GRAZIE
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Sponsor
 

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Flash30005 » 18/03/10 15:43

Non siamo sordi!!!
perché URLI così forte? :roll:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi raffygrp » 18/03/10 16:07

scusatemi :oops: ..... è che ne hobisogno urgente .... ma aspetto ..... :neutral:

grazie
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Flash30005 » 18/03/10 16:30

Vediamo se queste macro vanno bene...
Codice: Seleziona tutto
Public RigaC As Integer
Sub CompilaPrev1()
UBI = Worksheets("preventivo").Range("A33").End(xlUp).Row + 1
Worksheets("ed_01").Range("A" & RigaC & ":E" & RigaC).Copy Destination:=Worksheets("preventivo").Range("A" & UBI)
Worksheets("preventivo").Range("F" & UBI).FormulaR1C1 = "=RC[-3]*RC[-1]"
Worksheets("preventivo").Range("F" & UBI).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End Sub

Sub CompilaPrev2()
UBI = Worksheets("preventivo").Range("A33").End(xlUp).Row + 1
Worksheets("ed_02").Range("A" & RigaC & ":E" & RigaC).Copy Destination:=Worksheets("preventivo").Range("A" & UBI)
Worksheets("preventivo").Range("F" & UBI).FormulaR1C1 = "=RC[-3]*RC[-1]"
Worksheets("preventivo").Range("F" & UBI).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End Sub

Sub CancPre()
UBI = Worksheets("preventivo").Range("A33").End(xlUp).Row + 1
    Worksheets("preventivo").Range("A16:F" & UBI).ClearContents
    Range("A12").Select
End Sub

Nel codice del foglio Ed_01 metterai questa macro
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "A:A"
If Not Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
        If Mid(Target, 1, 2) <> "R." Then Exit Sub
RigaC = Target.Row
Call CompilaPrev1
End If
End Sub

nel foglio Ed_02 metterai questa macro
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "A:A"
If Not Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
        If Mid(Target, 1, 2) <> "R." Then Exit Sub
RigaC = Target.Row
Call CompilaPrev2
End If
End Sub

Inoltre inserirai un pulsante sul foglio preventivo per cancellare il preventivo
e assegnerai a quel pulsante la macro "CancPre"
comunque ti invio questo file come esempio

ciao

Nota: Corrette macro relative ai fogli, ore 16:50
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Flash30005 » 18/03/10 16:44

Ho fatto una piccola correzione alle macro dei fogli

questo è il file aggiornato

Per evitare di scrivere anche righe vuote sperando che tutti i codice inizino per "R."

Fai sapere
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi raffygrp » 18/03/10 16:46

grande !!!! mi hai salvato !!!

ciao
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi raffygrp » 18/03/10 16:53

volendo aggiungere altre pagine (es.ED_03 , Ed_04 ... ) quale parte di macro devo copiare nei fogli ?

grazie
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Flash30005 » 18/03/10 17:01

Quelle all'interno dei fogli e non nel modulo
ogni foglio deve avere una chiamata alla sua macro (si potrebbe escogitare qualcosa per avere una unica macro, ma la cosa più veloce ora era questa)
quindi copi la macro del foglio ED_01 e la incolli nel foglio Ed_03
dovrai cambiare la chiamata macro
Call CompilaPrev1 in
Call CompilaPrev3
e creare al macro Call "CompilaPrev3"
copiando la Call CompilaPrev1 e modificando la riga codice del foglio
Codice: Seleziona tutto
Sub CompilaPrev1()
UBI = Worksheets("preventivo").Range("A33").End(xlUp).Row + 1
'<<< la riga che segue
Worksheets("ed_01").Range("A" & RigaC & ":E" & RigaC).Copy Destination:=Worksheets("preventivo").Range("A" & UBI)
'<<<
Worksheets("preventivo").Range("F" & UBI).FormulaR1C1 = "=RC[-3]*RC[-1]"
Worksheets("preventivo").Range("F" & UBI).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End Sub

in
Codice: Seleziona tutto
Worksheets("ed_03").Range("A" & RigaC & ":E" & RigaC).Copy Destination:=Worksheets("preventivo").Range("A" & UBI)

(vedi il nome foglio)

Ciao

P.s. penserò con un attimo di tempo a "prelevare" il nome foglio e sostituirlo nel codice in maniera tale da avere una sola macro per tutti i fogli
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Flash30005 » 18/03/10 17:10

ecco qua
allora questa macro va nel modulo
Codice: Seleziona tutto
Public RigaC As Integer, Foglio As String
Sub CompilaPrev()
UBI = Worksheets("preventivo").Range("A33").End(xlUp).Row + 1
Worksheets(Foglio).Range("A" & RigaC & ":E" & RigaC).Copy Destination:=Worksheets("preventivo").Range("A" & UBI)
Worksheets("preventivo").Range("F" & UBI).FormulaR1C1 = "=RC[-3]*RC[-1]"
Worksheets("preventivo").Range("F" & UBI).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
End Sub

e questa
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "A:A"
If Not Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
    If Mid(Target, 1, 2) <> "R." Then Exit Sub
RigaC = Target.Row
Foglio = Name
Call CompilaPrev
End If
End Sub

in ogni foglio
(modifica anche quella dei fogli che hai
in questa maniera ad ogni foglio che aggiungi devi solo copiare la macro dei fogli o ancora meglio duplicare il foglio e assegnargli un nuovo nome

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi raffygrp » 18/03/10 18:40

non va ....alcune voci funzinoano altre no.... xchè ???

http://www.megaupload.com/?d=EF26COA1
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Flash30005 » 18/03/10 19:56

Perché per evitare di trascrivere ogni riga che clicchi ho messo un filtro che consiste nel controllo se i primi due caratteri contengono "R." se non contengono questa stringa, la macro, non trascrive nulla.
fai così
ogni foglio ha questa macro
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "A:A"
If Not Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then
    If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
    If Mid(Target, 1, 2) <> "R." Then Exit Sub '<<<< riga da modificare
RigaC = Target.Row
Foglio = Name
Call CompilaPrev
End If
End Sub


con questa
Codice: Seleziona tutto
   If Mid(Target, 1, 2) = "" Then Exit Sub
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Anthony47 » 18/03/10 23:27

NON aprire una nuova discussione se nessuno ti risponde, ma eventualmente aggiungi una "risposta" per riportare il tuo problema all' attenzione dei volontari. Ne' scrivere in maiuscolo per favore.

Se puo' ancora interessare, credo sia possibile anche usare direttamente questa macro, da inserire nel "modulo di codice" dei fogli ED_01 ed ED_02 (e degli altri fogli da cui attingere):
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Rangze, Cancel As Boolean)
CheckArea = "A4:E1000" '<<< Area controllata
If Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
Selection.EntireRow.Copy _
   Destination:=Sheets("preventivo").Range("A33").End(xlUp).Offset(1, 0)  '<<< A33
Cancel = True
End Sub
Questa si innesca con il doppioclick sulla cella. Non fa nessun controllo sul contenuto delle celle, d' altra parte un doppioclick non scappa per disattenzione.

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

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi raffygrp » 19/03/10 16:48

funziona tutto perfettamente !!!
mi manca solo una cosa :
al foglio "preventivo" ho bisogno di far la sommatoria di "tutti i prezzi" nella prima cella vuota della colonna f ( " totale prezzo") ....c'è una macro che possiamo inserire che vede tutte le righe " piene in colonna f" ( partendo dalla riga 25) ed effettua la sommatoria di n celle , nella prima cella vuota ?? ...spero di essere stato chiaro :cry:

grazie
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Anthony47 » 19/03/10 20:02

Metti in una qualsiasi cella libera la formula =SOMMA(F25:F10000)
Se pensi di avere piu' di 10mila righe allunga il range nella formula.

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

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi raffygrp » 20/03/10 16:00

bhe questo non era diffcile....

non si riece proprio ad avere una macro che cerchi la prima riga vuota del foglio "preventivo" e faccia la sommatoria di tutte le celle sopra nella colonna f ???

grazie
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi ricky53 » 20/03/10 17:40

Ciao,
una domanda:
perchè complicarsi la vita con del codice VBA quando basta una semplice somma (come detto da Anthony)?

Alle volte presi dal problema si perde di vista la soluzione semplice.

Un buon pacchetto deve essere: semplice, molto usabile e di facile manutenzione.
Spesso la migliore soluzione è un mix tra formule e codice VBA.

Buon proseguimento.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Anthony47 » 20/03/10 21:22

bhe questo non era diffcile....
Si, non e' stata difficile; d' altra parte ho l' abitudine a non complicarmi la vita pur avendo conoscenze per venirne fuori.
Ho quindi solo suggerito la soluzione piu' semplice al tuo problema: celle libere ne hai sicuramente anche in testa al foglio, cosi' oltre a poter scorrere il foglio e guardare il dettaglio hai sempre a portata d' occhio anche il complessivo.
Se comunque ti sembra non all' altezza posta ancora che l' aiuto non manchera'.

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

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi raffygrp » 22/03/10 18:28

la soluzione di riportare una cella in altro non mi aiuta perchè spesso compilo dei preventivi anche di 3 pagine, e non avendo una cifra di chiusura non riesco più ad orientarmi.....
comunque sto lavorando su questa macro, che va corretta perchè non riesco a farla partire dalla riga fissa ( 24 ) ed addizionarla per le N. righe che compongono il preventivo.....ci iresco solo per un range definito di 4 o 5 righe ...


Sub totalePrev()
UBI = Worksheets("preventivo").Range("A3333").End(xlUp).Row + 1 ' trova la prima riga vuota'
Worksheets("preventivo").Range("A" & UBI) = "Totale delle voci sopra descritte" ' scrive il testo di chiusura in colonna A alla prima riga vuota ' ( ed è ok)

Worksheets("preventivo").Range("F" & UBI).FormulaR1C1 = "=SUM(R[-1]C:R[-4]C)" ' totale delle celle sopra che partono dalla riga 24 e non sono mai un numero costante ( es. 50 voci ) ..... ma non riesco a completarla .... :cry: ....

a questo punto vorrei che mi si facesse il totale delle voci che riporto sora, ma non ci riesco, perchè il numero di celle che compilo non è costante....

' assegno i formati cella e numeri '
Worksheets("preventivo").Range("F" & UBI).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Worksheets("preventivo").Range("A" & UBI).Font.Bold = True
Worksheets("preventivo").Range("F" & UBI).Font.Bold = True

' scrivi le righe di chiusura'
UBI = Worksheets("preventivo").Range("A3333").End(xlUp).Row + 1
Worksheets("preventivo").Range("A" & UBI) = "___________________________"
UBI = Worksheets("preventivo").Range("A3333").End(xlUp).Row + 1
Worksheets("preventivo").Range("A" & UBI) = "___________________________"
UBI = Worksheets("preventivo").Range("A3333").End(xlUp).Row + 1
Worksheets("preventivo").Range("A" & UBI) = "___________________________"
UBI = Worksheets("preventivo").Range("A3333").End(xlUp).Row + 1
Worksheets("preventivo").Range("A" & UBI) = "___________________"
UBI = Worksheets("preventivo").Range("A3333").End(xlUp).Row + 3
Worksheets("preventivo").Range("A" & UBI) = "firma per accettazione_______________________"
End Sub

qualcuno riesce ad aiutarmi ??
raffygrp
Utente Junior
 
Post: 53
Iscritto il: 24/01/10 20:31

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Flash30005 » 22/03/10 23:48

Non riesco più a capire a che punto sei e quale macro stai utilizzando
potresto postare i tuoi file con l'esempio di cosa vuoi ottenere
eviti a coloro che volgiono aiutarti di leggere tutto e barcamenarsi su tanti discorsi fatti
in pratica fai il punto della situazione con il file che ti dà problemi

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE

Postdi Anthony47 » 23/03/10 00:13

Se ho capito bene la richiesta le formule finali sono tutte di questo tipo:
Codice: Seleziona tutto
Worksheets("preventivo").Range("F" & UBI) .FormulaR1C1 = "=SUM(R[" & 24 - UBI & "]C:R[-1]C)"

Se vuoi incollare il valore (e non la formula), la cosa piu' semplice e' che accodi alla riga di sopra anche questa:
Codice: Seleziona tutto
Range("F" & UBI).Value = Range("F" & UBI).Value


Non ho capito perche' ricalcoli in continuazione UBI.

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

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "SELEZIONE ,COPIA E INCOLLA CON CLIK DEL MOUSE":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti