Domanda Macro per copiare delle celle e incollarle in un altro foglio

Mox81

Nuovo utente
16 Settembre 2019
5
1
2016
0
Buongiorno,
sto cercando di creare un database di esercizi. Nel foglio 1 dovrei inserire tutti gli esercizi mentre nel foglio due vorrei inserire solo gli esercizi dell'allenamento del giorno. La parte descrittiva potrei utilizzare la funzione CERCA VERT, volevo sapere se esiste un modo per richiamare il contenuto delle celle da X1 a AO10 (forme e contenuto celle). Ho provato a cercare nel forum ma non sono riuscito a trovare niente se non relativo al copiare immagini o forme. Potete aiutarmi o indirizzarmi in qualche discussione?
Grazie
 

Allegati

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
20.197
1.733
Como
2011MAC 2016WIN
413
Ciao,
fai una prova così
Visual Basic:
Sub copiaEsercizi()
    Dim j As Long, uR As Long, uR2 As Long
    Dim numero, bln As Boolean
    numero = InputBox("Scrivi il numero dell'esercizio da copiare")
    With Sheets("Foglio1")
        uR = .Cells(Rows.Count, 1).End(xlUp).Row
        uR2 = Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Row + 10
        For j = 1 To uR Step 10
            If .Cells(j, 1) = Val(numero) Then
                If Sheets("Foglio2").Cells(1, 1) = "" Then uR2 = 1
                .Range("Y" & j + 1 & ":AN" & j + 8).Copy Sheets("Foglio2").Cells(uR2, "Y")
                Sheets("Foglio2").Cells(uR2, 1) = numero
                bln = True
                Exit For
            End If
        Next j
    End With
    messaggio1 = "Fatto!"
    messaggio2 = "Il numero scelto non corrisponde a nessun esercizio!"
    MsgBox IIf(bln = True, messaggio1, messaggio2)
End Sub
 

Mox81

Nuovo utente
16 Settembre 2019
5
1
2016
0
Buongiorno ges, grazie per la risposta, la macro svolge la funzione richiesta, volevo porre l'attenzione su alcuni problemi.
Quando eseguo la macro mi copia partendo dalla prima riga. In questa situazione il campo di gioco risulta sovrapposto all'altro (vedi allegato). Esiste un sistema per indirizzare la copia (es. scrivere l'indirizzo della cella di partenza in alto a sinistra).
Altra domanda, e se avessi sbagliato a digitare come lo annullo? non sono riuscito a tornare indietro.
Grazie
 

Allegati

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
19.319
713
66
Napoli
2013
356
Rispondo alla seconda domanda (per la prima ci penserà ges @ges che saluto).

Le azioni compiute a seguito dell'esecuzione di una macro non sono annullabili.
 

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
20.197
1.733
Como
2011MAC 2016WIN
413
Un saluto a alfrimpa @alfrimpa
Esiste un sistema per indirizzare la copia (es. scrivere l'indirizzo della cella di partenza in alto a sinistra)
Devi cambiare questa parte
Visual Basic:
[...]
Sheets("Foglio2").Cells(uR2, "Y")
[...]
Qui scrive nella colonna Y se vuoi che scriva nella colonna A basta che cambi così
Visual Basic:
[...]
Sheets("Foglio2").Cells(uR2, "A")
[...]
 

Mox81

Nuovo utente
16 Settembre 2019
5
1
2016
0
Provo a spiegarmi meglio. Se eseguo la macro mi copia il campetto partendo dalla riga 1 anzichè partire dalla riga due, quale parte della macro dovrei modificare?

Se invece avessi una intestazione e volessi far partire le copie dalla riga 15?
Grazie per la pazienza
 

Mox81

Nuovo utente
16 Settembre 2019
5
1
2016
0
Ho fatto questa modifica in modo da copiare anche la descrizione dell'esercizio contenuto nell'area A1:AO10

Visual Basic:
.Range("A" & j + 0 & ":AO" & j + 9).Copy Sheets("Foglio2").Cells(uR2, "A")

Al posto di uR2= 1metti uR2 = 2(o 15)
Ho modificato anche il valore da te indicato e correttamente inizia a copiare dalla riga 11.

Il problema è che adesso, eseguendo la macro mi sovrascrive sempre la riga 11. Per carità, questa macro la posso utilizzare per un altro tipo di compilazione. Ma cosa ho dimenticato di modificare affinchè mi copi gli esercizi in sequenza come faceva precedentemente?
La macro sente solo gli esercizi identificati con numeri interi, se dovessi creare delle varianti e numerarli con decimali (2.1, 2.2, 2.3...), è possibile?

Grazie
 

Allegati

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!