Risolto Macro per copiare celle visibili

riccardoct

Nuovo utente
18 Giugno 2019
7
1
365
0
Ciao a tutti,
Ho bisogno di un vostro aiuto, ho una macro che mi copia una parte di tabelle in una seconda cartella solo che cancella il contenuto della seconda cartella.
io vorrei invece che sposterebbe il contenuto in basso cosi che mi rimanga un archivio.
Dopo aver smanettato per una settimana circa ( non so nulla di macro e programmazione) Mi inginocchio e chiedo il vostro aiutino 👏
Grazie Sempre
Riccardo

Visual Basic:
Sub avvia()
'
' Macro2 Macro


Application.ScreenUpdating = False
    Sheets("precedente").Select
  Application.DisplayAlerts = False
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
    'Sheets("Next 188BET").Select
    'ActiveSheet.Buttons.Add(417.75, 5.25, 81, 25.5).Select
    'ActiveSheet.Buttons.Add(417.75, 37.5, 81, 25.5).Select
    'ActiveSheet.Buttons.Add(417.75, 68.25, 81, 25.5).Select
    Sheets("Next 188BET").Copy After:=Sheets(1)
    Sheets("Next 188BET (2)").Select
    Sheets("Next 188BET (2)").Name = "precedente"
    Sheets("precedente").Select
    ActiveSheet.Shapes("Rettangolo 1").Select
    Selection.Cut
    Sheets("Next 188BET").Select
    Application.ScreenUpdating = False
    Call aggiorna_next_188bet
End Sub
 
Ultima modifica:

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
18.842
113
Como
2011MAC 2016WIN
353
Ciao,
perdonami ma la spiegazione almeno per me non è chiara.
Allega un file di esempio spiegando più chiaramente
 

ggratis

VBA Expert
Expert
27 Settembre 2015
1.219
48
Lecce - Pisa
Excel 2010
32
Dopo aver smanettato per una settimana circa ( non so nulla di macro e programmazione)
Beh diciamo che per imparare certe cose è necessaria più di qualche settimana, anche decine e decine di settimane, quindi non disperare, sei nella media.
D'altra parte ci sono cose che possono rimanere oscure nonostante lo studio, il prodotto della cultura non sempre ha un valore proporzionale al tempo.
Ciò presso posta un file di esempio...
E prova a commentare ciò che fa la singola istruzione del tuo codice...
 
Ultima modifica:
  • Like
Reactions: Cesco80

Cesco80

Utente abituale
13 Luglio 2019
204
28
Verona Provincia
2016
8
Ciao a tutti,
Ho bisogno di un vostro aiuto, ho una macro che mi copia una parte di tabelle in una seconda cartella solo che cancella il contenuto della seconda cartella.
io vorrei invece che sposterebbe il contenuto in basso cosi che mi rimanga un archivio.
Dopo aver smanettato per una settimana circa ( non so nulla di macro e programmazione) Mi inginocchio e chiedo il vostro aiutino 👏
Grazie Sempre
Riccardo

Visual Basic:
Sub avvia()
'
' Macro2 Macro


Application.ScreenUpdating = False
    Sheets("precedente").Select
  Application.DisplayAlerts = False
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
    'Sheets("Next 188BET").Select
    'ActiveSheet.Buttons.Add(417.75, 5.25, 81, 25.5).Select
    'ActiveSheet.Buttons.Add(417.75, 37.5, 81, 25.5).Select
    'ActiveSheet.Buttons.Add(417.75, 68.25, 81, 25.5).Select
    Sheets("Next 188BET").Copy After:=Sheets(1)
    Sheets("Next 188BET (2)").Select
    Sheets("Next 188BET (2)").Name = "precedente"
    Sheets("precedente").Select
    ActiveSheet.Shapes("Rettangolo 1").Select
    Selection.Cut
    Sheets("Next 188BET").Select
    Application.ScreenUpdating = False
    Call aggiorna_next_188bet
End Sub
Ciao,
Se ho capito bene, vuoi trovare l'ultima riga vuota nella seconda cartella ed incollarci il contenuto senza cancellare quello che avevi, per far questo devi implementare alla tua macro una cosa del genere con i tuoi riferimenti.
Incolla su ultima riga :
ultimariga = Cells(Rows.Count, "A").End(xlUp).row
    ActiveSheet.Range("B" & ultimariga, "D" & ultimariga).Copy
    ActiveSheet.Range("B" & ultimariga, "D" & ultimariga).Offset(1, 0).Select
    ActiveSheet.Paste
 

Powerwin

VBA Expert
Expert
17 Marzo 2016
3.782
63
vicino a Milano
2019
56
Uhmm..... Cesco80 @Cesco80 quel pezzo di codice non mi torna, lui dovrebbe incollare dopo l'ultima riga del secondo foglio/file (?) mi pare, tu con quel codice stai copiando e incollando nel foglio attivo
 

Cesco80

Utente abituale
13 Luglio 2019
204
28
Verona Provincia
2016
8
Uhmm..... Cesco80 @Cesco80 quel pezzo di codice non mi torna, lui dovrebbe incollare dopo l'ultima riga del secondo foglio/file (?) mi pare, tu con quel codice stai copiando e incollando nel foglio attivo
Esatto è solo un esempio, come ho già detto lui dovrà mettere i suoi riferimenti e percorsi.
Poi sinceramente da quella macro capisco poco per metterci le mani
 
  • Like
Reactions: Powerwin

Cesco80

Utente abituale
13 Luglio 2019
204
28
Verona Provincia
2016
8
Cogliendo l'osservazione di Powerwin @Powerwin cerco di esporre meglio quanto scritto sopra, ma sempre a titolo esemplificativo, simulando la copia da un file all'altro, cose che tra l'altro ho appreso da lui SmileFace

Copia dati :
 Sub Copia_Dati()
    Dim wk1 As Workbook
    Dim wk2 As Workbook
    Dim Sh1 As Worksheet
    Dim Sh2 As Worksheet
    Dim Path As String
Dim ultimariga As long 
'sotto inserisci percorso della seconda cartella
Path = "Inserire qui il percorso di destinazione"

'metto i riferimenti ai files
    Set wk1 = ThisWorkbook
    Set wk2 = Workbooks.Open(Path & "/" & "Inserire qui nome del file")
    'metto i riferimenti ai fogli
    Set Sh1 = wk1.Worksheets("Foglio1")
    Set Sh2 = wk2.Worksheets("Foglio1")
    
ultimariga = Cells(Rows.Count, "A").End(xlUp).row
With Sh1
        'copio i dati da un file all'altro
    .Range("B" & ultimariga, "D" & ultimariga).Copy
    Sh2.Range("B" & ultimariga, "D" & ultimariga).Offset(1, 0).Select
   .................
     End With
 

Cesco80

Utente abituale
13 Luglio 2019
204
28
Verona Provincia
2016
8
hai appreso da lui anche il gusto di lasciare le opere incompiute per stimolare l'interlocutore all'apprendimento
Meno male che c'è qualche "seguace" :batticinque:
Anche io ho un seguace,da ieri ggratis @ggratis ha cominciato a seguirmi,trova interessanti le mie discussioniCrepa_pelle
Un saluto a tutti cappello_salutae basta con gli OT
Se l'utente ci da i suoi riferimenti gli daremo il codice completoLingua_lingua
 
Ultima modifica:

Cesco80

Utente abituale
13 Luglio 2019
204
28
Verona Provincia
2016
8
e dove le metti poi?
non farci fare un interrogatorio...spiega per bene i passaggi
al momento copia tutto il contenuto del foglio Next 188BET e lo incolla sul foglio precedente
Ciao,
Dai anche uno sguardo qui
 

Powerwin

VBA Expert
Expert
17 Marzo 2016
3.782
63
vicino a Milano
2019
56
Con il tasto copia vorrei riuscire a copiare le celle piena da A13 a L13
A13-L13 è una riga sola, vuoi copiare una riga sola? ....hai più celle unite (negative per le macro) tu in quel foglio che io rughe per i miei anni (e non sono pochi)
devi copiare anche le intestazioni?
il numero di righe da prendere in considerazione è sempre 612?
devi mantenere i formati?

...siamo ancora in fase esplorativa...speriamo di arrivare alle risposte totali prima del 50° post
 

riccardoct

Nuovo utente
18 Giugno 2019
7
1
365
0
Con il tasto copia vorrei riuscire a copiare le celle piena da A13 a L13
A13-L13 è una riga sola, vuoi copiare una riga sola? ....hai più celle unite (negative per le macro) tu in quel foglio che io rughe per i miei anni (e non sono pochi)
devi copiare anche le intestazioni?
il numero di righe da prendere in considerazione è sempre 612?
devi mantenere i formati?

...siamo ancora in fase esplorativa...speriamo di arrivare alle risposte totali prima del 50° post
se arriviamo al 50° post vi offro il caffe' a tutti :LOL:

Allego lo screen di quello che vorrei copiare Clicca qui
 

Powerwin

VBA Expert
Expert
17 Marzo 2016
3.782
63
vicino a Milano
2019
56
ti posto un inizio di codice da adattare alla tua esigenza, ovviamente adesso copia sempre nel foglio di destinazione sovrascrivendo i dati precedenti, ma hai tutti gli indizi per modificarlo correttamente

Visual Basic:
Sub Prova()
Dim lr As Long
Dim myRange As Range
Dim wk As Workbook
Dim sh As Worksheet
Dim sh1 As Worksheet
lr = Sheets("Next 188BET").Cells(Rows.Count, 1).End(xlUp).Row
Set wk = ThisWorkbook
Set sh = wk.Sheets("Next 188BET")
Set sh1 = wk.Sheets("precedente")
    With sh
        .Range("A13:L" & lr).Copy Destination:=sh1.Range("A1")
    End With

End Sub
 
  • Like
Reactions: riccardoct

riccardoct

Nuovo utente
18 Giugno 2019
7
1
365
0
Powerwin @Powerwin grazie al tuo codice ora riesco a copiare tutto, io volevo copiare solo le celle filtrate😅 . Ho anche notato che non mi copia l'ultimo rigo del foglio next 188bet🤔
Copia:
Sub Copia()
  Dim wk As Workbook
    Dim wk1 As Workbook
    Dim Sh As Worksheet
    Dim Sh1 As Worksheet
    Dim Path As String
    Dim ultimariga As Long
    
lr = Sheets("Next 188BET").Cells(Rows.Count, 1).End(xlUp).Row
Set wk = ThisWorkbook
Set Sh = wk.Sheets("Next 188BET")
Set Sh1 = wk.Sheets("precedente")
    With Sh
        .Range("A13:L" & lr).Copy Destination:=Sh1.Range("A1" & ultimariga)
  
    End With

End Sub
 

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
18.842
113
Como
2011MAC 2016WIN
353
Ciao,
Ho anche notato che non mi copia l'ultimo rigo del foglio next 188bet
perchè hai le celle unite e quindi la variabile lr legge come ultima riga 191 inceve che 192.
Questo problema lo puoi risolvere aggiungendo 1 alla macro di Powerwin @Powerwin che saluto cappello_saluta, così
Visual Basic:
 lr = Sheets("Next 188BET").Cells(Rows.Count, 1).End(xlUp).Row + 1

ora riesco a copiare tutto, io volevo copiare solo le celle filtrate
Basta dirglielo alla macro, "copiami solo le celle visibili", cioè così:
Visual Basic:
 .Range("A13:L" & lr).SpecialCells(xlCellTypeVisible).Copy Destination:=sh1.Range("A1")
Adesso sistema i pezzi per la macro completa.
 

Sostieni ForumExcel

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