|
|
Copiare immagini e testo |
|
|
Storico discussioni |
|
| copiare cella di mic |
come si copia su foglio 2 cella con immagine(ipj tramite macro (bottone )lo scopo passare righe di 6/7 celle con dati e immagini.
|
|
| di Mauro |
Certo non si può dire che pecchiate di prolissità! :-)
Supponiamo di avere un esempio con un'immagine puntata nella cella B3 e del testo nella cella B5.
Il codice seguente copia l'immagine e la cella dal foglio 1 al foglio 2.
Worksheets("Foglio2").Select
Worksheets("Foglio1").Shapes("Picture 1").Copy
ActiveSheet.Paste Destination:=Worksheets("Foglio2").Range("B3")
Worksheets("Foglio1").Range("B5").Copy
ActiveSheet.Paste Destination:=Worksheets("Foglio2").Range("B5")
Note: la proprietà shapes restituisce un oggetto a livello di disegno, quale una forma o una figura. |
|
| copiare cella di mic di mic |
| mauro sei un GRANDE ( funziona ) il tuo consiglio e stato utilissimo devo solo adattarlo per il mio programmino (scommetto a questo punto che creata la macro per le righe da copiare al foglio 2,con un comando( bottone macro)potrei cancellare le righe copiate ( chiedo troppo) |
|
| di Mauro |
Ciao Mic,eccoti accontentato:
Sheets("Foglio2").Shapes(1).Delete
Sheets("Foglio2").Range("B5").ClearContents
La prima riga cancella la forma, la seconda cancella il contenuto della cella. |
|
| copiare celle di mic di mic |
Sub Macro()
Dim FoglioOrigine As Object, FoglioDestino As Object
Set FoglioOrigine = Foglio1
Set FoglioDestino = Foglio2
Dim RangeOrigine As Range
Dim RangeDestino As Range
Set RangeOrigine = FoglioOrigine.Range("A3:G3")
Set RangeDestino = FoglioDestino.Cells(65536, 1).End(xlUp).Offset(1, 0).Resize(1, 7)
' --- istruzione di copiatura dati da Origine a Destino
RangeDestino.Value = RangeOrigine.Value
If MsgBox("Visualizzo ora i dati copiati nel foglio Destinazione ?", vbYesNo + vbInformation + vbDefaultButton2) = vbYes Then
FoglioDestino.Activate
RangeDestino.Select
MsgBox "Ritorno al foglio Origine"
FoglioOrigine.Activate
RangeOrigine.Select
End If
End Sub
ciao GRANDE MAURO sei molto BRAVO ti mando la mia macro creata scopiazzando su riviste( no esperto)eseguendola non riesco a copiare immagini un riga sotto l'altra come i valori inserendo le tue stringhe li copia una su l'altra ( per l'altro suggerimento non riesco a cancellare del tutto ) |
|
| di Mauro |
Ciao Mic sono lusingato dei tuoi complimenti! Tieni conto che fare il programmatore è il mio mestiere.
Se per incollare l'immagine usi la riga di codice:
FoglioDestino.Paste Destination:=FoglioDestino.Range("A1")
dovrebbe puntarti l'immagine esattamente nella cella A1.
Cmq se vuoi essere + preciso puoi dargli le coordinate esatte esempio:
ActiveSheet.Shapes("NomePicture").Left = 50
ActiveSheet.Shapes("NomePicture").Top = 50
La prima indica la distanza (forse in pixel? boh!) dal bordo sx la seconda dal bordo sup.
Le righe di cancellazione dovrebbero essere giuste, basta che stai attendo a passargli i riferimenti corretti.
Buon weekend. Ciao |
|
| cancellare celle di mic |
ciao Mauro allora sei un Prof (programmatore) mi fa molto piacere, cmq ti chiedo di avere pasienza con noi. (no esperti)
Domanda
come faccio
a modificare quel tuo suggerimento (giusto scusami ) sulle due righe per cancellare le forme nel foglio2, non a una la volta, ma tutte insieme
9 o 10, ( Sheets("Foglio2").Shapes(1).Delete )perchè? dopo aver cancellato, se non trova da cancellare mi da errore. GRAZIE |
|
| di Mauro |
Ciao Mic, dà errore perchè non trova nessuna figura con identificativo 1, prova con questo:
Sheets("Foglio2").Shapes.SelectAll 'Seleziona tutte le immagini del foglio
Selection.Delete ' Elimina la selezione
Ti rimando alla discussione precedente alla tua, in allegato c'è un tutorial che spiega come gestire al meglio gli errori.
Ci sentiamo presto. Ciao |
|
| cancellare celle di Mic |
Ciao Mauro il tuo consiglio su come cancellare tutto va benissimo, ma nasce un problema,mi cancella anche il pulsante di comando.
Domanda:come fare a cancellare solo i dati e immagini senza il pulsanti di comando sempre con unico pulsante.CIAO da Mic |
|
| di Mauro |
è vero così elimini tutto brutalmente!
Il problema è riuscire ad identificare le forme e di conseguenza eliminarle!
Ho notato che la proprietà type riesce ad identificare il tipo di forma ad esempio: pulsante = 8, rettangolo = 13 ecc.. Questo può essere d'aiuto.
Quindi per eliminare tutti i rettangoli:
For i = 1 To Sheets("Foglio2").Shapes.Count
If Sheets("Foglio2").Shapes(i).Type = 13 Then
Sheets("Foglio2").Shapes(i).Delete
End If
Next
Ti avverto già che andrà in errore, il perchè è un mistero!
Altrimenti si può provare con l'oggetto ShapeRange (insieme di forme). Bisognerebbe studiarne l'utilizzo nella guida e cercare di applicarlo.
Un escamotage potrebbe essere anche quello di spostare il pulsante su un altro foglio o sulle barre degli strumenti Excel. Prova a vedere una di queste soluzioni poi ci sentiamo. Ciao |
|
| Cancellare celle di Mic |
Ciao,Mauro mi da errore,come già prevedi.
Domanda è possibile selezionare solo le celle delle forme, perchè la riga, Sheets("Foglio2").Shapes.SelectAll 'Seleziona tutte le immagini del foglio funziona a meraviglia, quindi un qualcosa che mi faccia selezionare le celle che che voglio. Grazie e Saluti |
|
| di Mauro |
Le forme non sono legate alle celle quindi, se seleziono la cella su cui si trova la figura e cancello il contenuto, la figura rimane.
Cmq ho trovato l'errore, dovrebbe andare bene, basta che trovi il codice associato al tipo di forma che vuoi cancellare:
For i = Sheets("Foglio2").Shapes.Count To 1 Step -1
If Sheets("Foglio2").Shapes(i).Type = 13 Then
Sheets("Foglio2").Shapes(i).Delete
End If
Next |
|
| Trovare codice di Mic |
Grazie,per il tuo modo di fare ma non riesco a capire come trovare il codice associato al tipo di forma,e come mettere i riferimento giusto,scusami per le mie domande, ma se puoi spiegare passo passo l'ultima tua soluzione sicuramente riesco a risolvere. A PRESTO
|
|
| di Mauro |
Eccoti accontentato:
'Ripete un gruppo di istruzioni decrementando il contatore "i" dal numero totale di forme nel foglio a 1
For i = Sheets("Foglio2").Shapes.Count To 1 Step -1
'X ogni forma valuta il tipo se è uguale a 13 (forma rettangolo) entra
If Sheets("Foglio2").Shapes(i).Type = 13 Then
'Elimina il foglio in questione
Sheets("Foglio2").Shapes(i).Delete
'Esce dalla if
End If
'Termina il ciclo
Next |
|
| cancellare forme di Mic |
Ciao Mauro scusami cerco di spiegarti cosa voglio fare.
Sul foglio1 ho dei codici di prodotti,descrizioni,e forme (disegni)
circa 30 in 30 righe,con dei pulsanti di lato a
ogni riga ,quindi pigiando il pulsante del prodotto che mi serve me lo copia nel foglio2,(non più di 8/9 uno per volta ) fin qui con i tuoi suggerimenti ci sono riuscito alla grande, adesso quello che mi copia nel foglio2 (dopo stampato) lo devo cancellare con un pulsante (l'ultimo tuo suggerimento mi da errore sicuramente perchè non riesco a mettere i parametri giusti)inserendo questi codici
mi cancella i dati immediatamente,mentre le forme una per volta,e non trovando forme mi da errore
Sheets("Foglio2").Shapes(3).Delete
Sheets("Foglio2").Range("A3:G10").ClearContents
come faccio a sistemare la prima riga? Grazie, per la celerità delle risposte |
|
| di Mauro |
Prima non trovava le forme perchè decrementando il numero di forme ed incrementado l'indice ad un certo punto sforava. L'ultimo esempio che ti ho spedito ragiona al contrario decrementando il numero di forme decrementa anche l'indice. Prova ad inserire quel ciclo for vedrai che funziona! Cazzarola, finito sto progetto mi farai un regalo!? :-)
Ciao |
|
| cancellare celle di mic |
Ciao hai ragione, ma se consideri che che fino a
qualche mese, non sapevo cosa significava Macro,
consigliami qualche libro dove posso trovare anche degli esempi pratici, il tuo esempio sono sicuro che funziona,ma non riesco a capire perchè a me da
l'errore sulla "i" (For i ).
In quanto al "regalo" ti organizzo delle lezioni
con centinaia di ragazzi che ti fanno tutti insieme centinaia di domande su VBA.CIAO
|
|
| di Mauro |
Ti da errore perchè hai definito in testa il parametro: Option Explicit, che ti costringe a dichiarare tutte le variabili.
In tal caso devi inserire: Dim i As Integer.
I testi che ho io sono tutti molto vecchi in quanto io uso il vba ancora dai tempi di office '97.
Cmq se ti interessa il sito contiene un corso online, che è anche scaricabile dalla sezione downloads.
Inoltre nella sezione "Segnala un sito" categoria "Computer Internet" trovi molti altri link che trattano il VBA.
P.S.: X caso sapresti rispondere a Pietro?
Ciao |
|
| cancellare celle di mic |
Ciao Mauro, io credo che il VBA è stato inventato da Te, ci sono riuscito cambiando il parametro: "Option Explicit",con "Dim i As Integer",adesso il
programmino è preciso ,per il problema di Piero non è per me ancora
.
P.S x utenti nuovi
scrivete a Mauro è Bravissimo.
|
|
| Discussione bloccata! |
|