Condividi:        

Scegliere Destinazione

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

Scegliere Destinazione

Postdi giorgioa » 19/10/23 16:52

Salve,

un aiutino, riga di codice, penso, per completare la macro

Codice: Seleziona tutto
Sub Verifica_Distanze()

    Sheets("Ruote").Select
    ActiveCell.Range("A1:J1").Select
    Selection.Copy
    Sheets("Calndario").Select
   
   ' la macro si ferma
   ' devo cliccare su una cella qualsiasi
   ' la macro conclude sotto e si chiude
   
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
   
End Sub
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Sponsor
 

Re: Scegliere Destinazione

Postdi Ricky0185 » 19/10/23 21:25

Metti subito dopo
Codice: Seleziona tutto
Sheets("Calndario").Select 'forse è Calendario
queste istruzioni
Codice: Seleziona tutto
Dim myRange As Range
    On Error Resume Next
    Set myRange = Application.InputBox(Prompt:="Scegli una qualsiasi cella del foglio", _
                                       Title:="Titolo", Type:=8) ‘metti quello che vuoi
    On Error GoTo 0
  If myRange Is Nothing Then
        MsgBox "Nessuna cella selezionata", vbCritical, "Richiesta selezione"
        Exit Sub
    End If

e lascia stare tutto il resto, il Paste. Se pero durante la sosta devi scrivere qualcosa, non ricordo se lo puoi fare.
Prova e facci sapere.
Altre soluzioni .... aspettiamo il Guru.
Ciao
PS Cambierei il titolo in "Pausa macro e riprendi macro"
Ricky0185
Utente Senior
 
Post: 303
Iscritto il: 10/12/19 20:38

Re: Scegliere Destinazione

Postdi giorgioa » 19/10/23 22:27

salve Richy
ho preso il codice che mi hai scritto e avviato la macro
mi da errore di sintassi

forse non ho capito
la macro da foglio ruote seleziono una cella e quando la avvio mi copia 10 celle in riga
passo al foglio calendario
qui vorrei la pausa perchè devo segliere la cella dopo aver scelto la cella mi deve incollare in verticale
le celle copiate
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: Scegliere Destinazione

Postdi Anthony47 » 20/10/23 00:25

Metterei insieme i vostri codici in questa sequenza:

Codice: Seleziona tutto
Sub MacroMacro()
Dim myRange As Range, mySrc
'
mySrc = ActiveCell.Range("A1:J1").Value
Sheets("Calendario").Select         'Calendario??
Set myRange = Application.InputBox(Prompt:="SELEZIONA la destinazione", _
   Title:="Titolo", Type:=8)
myRange.Cells(1, 1).Resize(UBound(mySrc, 2), 1).Value = Application.WorksheetFunction.Transpose(mySrc)
End Sub

Nel codice di Ricky c'era un "accento" al posto di "apice", non gradito sintatticamente; ma soprattutto Application.InputBox rimuove la .Copy fatta; da qui la necessita' di usare mySrc per memorizzare i valori da copiare

Quando compare l'Inputbox devi selezionare la cella in cui incollare i risultati
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Scegliere Destinazione

Postdi giorgioa » 20/10/23 07:05

Salve,

mySrc = ActiveCell.Range("A1:J1").Select

per capire, posso farlo?
mySrc = ActiveCell.Range("A1").resize(1,10).Select
Saluti e grazie
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: Scegliere Destinazione

Postdi Anthony47 » 20/10/23 07:54

No, e' una istruzione che non si puo' scrivere così
Ma poi, perche' vorresti "Selezionare" quell'area? Hai provato la macro così come l'abbiamo scritta? Se non fa cosa volevi fare, allora dovresti dirci "Cosa vuoi fare?"
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Scegliere Destinazione

Postdi giorgioa » 20/10/23 08:28

I am sorry

la macro funziona perfettamente

Bay
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: Scegliere Destinazione

Postdi Ricky0185 » 20/10/23 08:30

Inizialmente avevo provato la strada dell'F9 che, inserito nella macro in testa all'istruzione dove si vuole stoppare la macro, appunto ne interrompe l'esecuzione. Ma poi non sono riuscito ad inserire l'istruzione adatta per scegliere la cella dove scaricare il Paste.
Anthony, pensi sia possibile?
Ricky0185
Utente Senior
 
Post: 303
Iscritto il: 10/12/19 20:38

Re: Scegliere Destinazione

Postdi Anthony47 » 20/10/23 09:58

giorgioa ha scritto:I am sorry
We are sorry we made you sorry

Ricky ha scritto:Inizialmente avevo provato la strada dell'F9 [...]
Intendi inserire un breakpoint per fermare la macro su una riga? In questo caso non credo si possa fare se non in ambiente di sviluppo macro.
Il modo piu' lineare di fare la selezione e' usare l'Inputbox come hai fatto: contiene tutto quello che serve, in modo nativo e integrato

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

Re: Scegliere Destinazione

Postdi Ricky0185 » 20/10/23 14:07

Ma scusa, insersco un punto d'interruzione (con F9) in testa alla riga
Codice: Seleziona tutto
Sheets("Calendario").Select
poi vado sul Foglio Calendario e metto il puntatore sulla cella dove debbo incollare il copiato. Nella macro avevo precedentemente inserito subito dopo Sheets("Calendario").Select
Codice: Seleziona tutto
ActiveCell.Select
.
Riavvio la macro (F5) e voilà, nella cella attiva scelta in verticale vengono incollati i dati copiati. Sostanzialmente
Immagine
Che te ne pare? È solo curiosità. È anche vero che per risolvere un problema ci sono più modi.
Ciao
R
Ricky0185
Utente Senior
 
Post: 303
Iscritto il: 10/12/19 20:38

Re: Scegliere Destinazione

Postdi Anthony47 » 20/10/23 14:53

Ma scusa, insersco un punto d'interruzione (con F9) in testa alla riga
E' difetto che intendevo quando dicevo "non credo si possa fare se non in ambiente di sviluppo macro".
Perche' quando vuoi fare il giochino devi:
- (1)aprire l'editor delle macro, cercare la macro, mettere il punto di break nella posizione giusta; (2) lanciare la macro, quando sei sul break andare sul foglio, selezionare la cella, tornare sull'editor delle macro, riprendere la macro
Le istruzioni (1) le devi fare spesso; le (2) "tutte le volte"

Sarebbe (relativamente) piu' semplice mettere l'istruzione Stop dopo la selezione del secondo foglio, così devi solo
-lanciare la macro; quando arriva lo stop vai sul foglio, selezioni la cella di destinazione; torni sull'editor delle macro, riprendi la macro

Oppure
-una macro ti copia l'area selezionata sul foglio iniziale
-una seconda macro fa Incolla speciale nella posizione che hai nel frattempo selezionato
Se assegni un "tasto di scelta rapida" a ognuna delle macro (vedi viewtopic.php?f=26&t=103893&p=647678#p647678) ti basterà fare Contr-tasto assegnato per lanciare la 1 e un altro Contr-tasto assegnato per lanciare la 2

Tutte ipotesi piu' semplici che il tasto F9, ma tutte meno efficaci dell'Inputbox (che, ad esempio, consente di ricordare all'utente che cosa deve fare)
Ciao a tutti
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Scegliere Destinazione

Postdi Ricky0185 » 20/10/23 20:38

Tutto giusto quello che dici. Però prova il file allegato, che rispecchia quanto richiesto da giorgioa, anche se la sequenza delle azioni è diversa, ma il risultato è corretto. Ti si apre sul FoglioCalendario, scegli una qualunque cella del foglio e lancia la macro con Ctrl+a. Ti incolla in verticale il contenuto delle celle A1:J1 del FoglioRuote. Puoi poi scegliere anche un'altra cella e rilancia la macro. Stesso risultato. E così via su tutte le differenti celle del FoglioCalendario su cui ti “posi”.
Questa soluzione prevede che le celle A1:J1 siano sempre quelle da copiare e te le incolla automaticamente sul FoglioCalendario a cominciare da qualunque cella che scegli. L’operazione la puoi ripetere quante volte vuoi rilanciando la macro dopo aver scelto la cella sul FoglioCalendario. Giusto per farti capire il mio procedimento anche senza breakpoint.
Se invece il contenuto delle celle A1:J1 è variabile…..cestina il file.
Ciao
R
Ricky0185
Utente Senior
 
Post: 303
Iscritto il: 10/12/19 20:38

Re: Scegliere Destinazione

Postdi Anthony47 » 21/10/23 10:42

L'istruzione ActiveCell.Range("A1:J1").Select (vedi messaggio iniziale di giorgioa) mi fa pensare che giorgioa voglia prelevare 10 estrazioni dal foglio Ruote, prelevandole a partire dalla "cella attiva corrente" impostata su quel foglio e copiandole sul foglio Calendario sulla selezione che va a fare.
Quindi non si tratta di copiare sempre Range("A1:J1") ma un'area che cambia volta per volta.
Con questa ipotesi dovrebbe intervenire "l'ultimo comma" del tuo messaggio: "Se invece il contenuto delle celle A1:J1 è variabile…..cestina il file"; ma aspettiamo a sentire che dice giorgioa (se ci segue ancora).

Questa ipotesi, tra l'altro, mi ha fatto cancellare l'istruzione Sheets("Ruote").Select dalla macro che avevo poi proposto (perche' se devo lavorare partendo dalla cella "attiva" allora quel foglio e' gia' stato selezionato)

Se invece le celle da copiare sono sempre Sheets("Ruote").Range("A1:J1") allora il codice si puo' anche ridurre:
Codice: Seleziona tutto
Sub Verifica_Distanze2()
    Sheets("Ruote").Range("A1:J1").Copy
    ActiveCell.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
End Sub

oppure (copiando solo i valori)
Codice: Seleziona tutto
Sub Verifica_Distanze3()
    ActiveCell.Resize(10, 1).Value = Application.WorksheetFunction.Transpose(Sheets("Ruote").Range("A1:J1").Value)
End Sub
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Scegliere Destinazione

Postdi Ricky0185 » 23/10/23 08:23

…mi fa pensare che giorgioa voglia prelevare 10 estrazioni dal foglio Ruote, prelevandole a partire dalla "cella attiva corrente" impostata su quel foglio e copiandole sul foglio Calendario sulla selezione che va a fare..
Ciai ragione visti anche i suoi post precedenti. Ma allora
- Sul FoglioRuote scegli la cella da copiare (automaticamente seleziona e copia Cella+9 valori a destra);
- Vai sul FoglioCalendario e selezioni la cella su cui incollare il copiato;
- Lanci la macro Sub Verifica_Distanze (Anche col solo Ctrl+a).
Allego il filetto.
....ma aspettiamo a sentire che dice giorgioa (se ci segue ancora)
Probabilmente grazie ai tuoi suggerimenti deve aver centrato la cinquina ed ora si trova alle Bahamas.
Ciao
R
Ricky0185
Utente Senior
 
Post: 303
Iscritto il: 10/12/19 20:38

Re: Scegliere Destinazione

Postdi Anthony47 » 23/10/23 14:45

Si, andrebbe bene anche così; soprattutto se l'utente sa già cosa deve fare (dove mettere i dati e quali dati prelevare)

Per i posteri, il codice di Ricky:
Codice: Seleziona tutto
Sub Verifica_Distanze()

    Sheets("Ruote").Select
    Range(ActiveCell, ActiveCell.Offset(0, 9)).Copy     'seleziona e copia
    'ActiveCell.Range("A1:J1").Select                   'Oppure: istruzione di giorgioa per copiare
    Sheets("Calendario").Select
   
    ActiveCell.Select                                   'Conferma della cella su cui incollare il copiato
   
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
        Application.CutCopyMode = False
End Sub
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Scegliere Destinazione":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti