Risultati da 1 a 12 di 12

Discussione: Range da modificare



  1. #1
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Range da modificare

    Buonasera a tutti....nel file che allego c'è una macro che trasferisce le celle dal foglio 1 al foglio 3 (egregiamente corretta da suggerimenti avuti qui).....e funziona correttamente.....il range delle celle da copiare è da A1 a M200.....la domanda è questa se io volessi fargli copiare per esempio tutte le celle da A1 a M50 poi da A61 a M200 per cui creando un buco di celle da non copiare dove devo intervenire nel codice?? ho fatto diverse prove ma non riesco......grazie
    File Allegati File Allegati

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao Danilo,
    non ho ben capito se il "buco" lo vuoi anche nel "Foglio 3".

    Comunque, visto che hai utilizzato il metodo .Copy, potresti definire un range che comprenda sia il Range("A1:M50") che il Range("A61:M200") e copiare direttamente quello.

    In rosso le modifiche apportate:

    Codice: 
    Sub copia()
    Dim wsh As Worksheet, wsh1 As Worksheet, Unione As Range
    
    
    Set wsh = ThisWorkbook.Worksheets("Foglio1")
    Set wsh1 = ThisWorkbook.Worksheets("Foglio3")
    'wsh.Unprotect "123"
    'wsh1.Unprotect "123"
    
    
    Set Unione = Union(wsh.Range("A1:M50"), wsh.Range("A61:M200"))
    Unione.Copy
    wsh1.Activate
    wsh1.Range("A1").PasteSpecial xlPasteAll
    
    
    wsh.Activate
    Range("A1").Select
    Application.CutCopyMode = False
    
    
    'wsh.Protect "123"
    'wsh1.Protect "123"
    Set wsh = Nothing
    Set wsh1 = Nothing
    
    
    MsgBox ("AGGIORNAMENTO TERMINATO"), vbInformation, "ATTENZIONE"
    End Sub
    P.S.
    prima di effettuare la copia, sarebbe opportuno cancellare i dati dalla tabella nel Foglio 3, ma non sapendo lo scopo finale di questo codice...ho lasciato tutto com'era.
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. #3
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571
    Tornato ora ....era solo per capire dove intervenire nel codice....praticamente io scrivevo wsh. range[("a1:m50"), ("a61:m200")]....e non andava....per cui se volessi fargli copiare da foglio 1 a foglio 3 soltanto dei blocchi di celle intervengo soltanto dove mi hai modificato il range wsh.Range()??...per il resto lascio inalterato?...grazie Danilo

  4. #4
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571
    c'è da rivedere qualcosa perchè impostato cosi nel foglio 3 (destinatario della copia) non ci sono le celle vuote ma sotto A50 mi riporta il valore di A61....quello che vorrei che la macro facesse è esempio: copiare celle (A1:M20) poi (A24:M70) etc.....se riesco a impostarlo i range li cambio io.....
    ....

  5. #5

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Citazione Originariamente Scritto da Danilo Fiorini Visualizza Messaggio
    c'è da rivedere qualcosa perchè impostato cosi nel foglio 3 (destinatario della copia) non ci sono le celle vuote ma sotto A50 mi riporta il valore di A61....quello che vorrei che la macro facesse è esempio: copiare celle (A1:M20) poi (A24:M70) etc.....se riesco a impostarlo i range li cambio io.....
    ....
    Ciao,
    infatti era la prima cosa che ti avevo chiesto:
    Ciao Danilo,
    non ho ben capito se il "buco" lo vuoi anche nel "Foglio 3".
    In questo caso, sarebbe meglio utilizzare un ciclo dove in base alle condizioni che imposti grazie alla funzione "If" puoi decidere se i dati per quella riga debbano essere copiati sul "Foglio 3" oppure no.

    Codice: 
    Sub copia_anche_vuote()
    Dim wsh As Worksheet, wsh1 As Worksheet, i As Long, j As Long
    
    
    Set wsh = ThisWorkbook.Worksheets("Foglio1")
    Set wsh1 = ThisWorkbook.Worksheets("Foglio3")
    'wsh.Unprotect "123"
    'wsh1.Unprotect "123"
    
    wsh1.Range("A3:M201").ClearContents
    
    For i = 3 To 201
        If i <= 50 Or i >= 61 Then 'aggiungere i valori riga da copiare
            For j = 1 To 22
                wsh1.Cells(i, j).Value = wsh.Cells(i, j).Value
            Next j
        End If
    Next i
    
    
    wsh.Activate
    Range("A1").Select
    
    
    'wsh.Protect "123"
    'wsh1.Protect "123"
    Set wsh = Nothing
    Set wsh1 = Nothing
    
    
    MsgBox ("AGGIORNAMENTO TERMINATO"), vbInformation, "ATTENZIONE"
    End Sub
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  6. #6
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571
    ciao grazie delle risposte.....ora per capire tolgo il codice precedente e inserisco questo?.....e la parte in verde qual è la sintassi cioè come si scrivono i valori di riga da copiare? e in ultima analisi me lo spieghi praticamente le condizioni che hai imposto sai di solito prendo un codice da internet o dal forum cambio i valori (quando riesco a capire come si procede) e cerco di adattarlo....vorrei capire dove devo intervenire,,,,grazie per la pazienza....e la disponibilità....Danilo

  7. #7
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571
    il file che mi avevi modificato nella discussione Macro copia celle su foglio protetto l ho modificato cosi....e il risultato lo ottengo perché ho capito dove intervenire
    File Allegati File Allegati

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao Danilo,
    non ho il pc al momento...
    quello che fai di solito va bene (adattare i codici) ma dovresti anche cercare di imparare almeno le cose basilari. Ad esempio, l'ultimo codice proposto (che è quello che devi usare se vuoi le celle vuote nel foglio 3) usa solamente i cicli For...next e le condizioni da gestire con If... end if.

    Sono proprio le condizioni dell'If che indicano cosa copiare e cosa no (nel codice di prima copierà le righe minori o uguali a 50 e quelle maggiori o uguali a 61.... come avevi chiesto nel primo post).

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  9. #9
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571
    ora mi ci metto......ma per imparare le cose basilari hai un consiglio su cosa leggere o scaricare?......io sono totalmente autodidatta......comunque grazie ancora metterò risolto come sempre.......Danilo

  10. #10

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Citazione Originariamente Scritto da Danilo Fiorini Visualizza Messaggio
    ora mi ci metto......ma per imparare le cose basilari hai un consiglio su cosa leggere o scaricare?......io sono totalmente autodidatta......comunque grazie ancora metterò risolto come sempre.......Danilo
    Ciao,
    personalmente ho iniziato con delle guide trovate online (quando riavrò il pc ti posto i link), ho un paio di libri ma non ho mai superato le prime 20 pagine.... preferisco affrontare i problemi quando mi si presentano cercando sul web (so che è sbagliato ma in questo modo le cose mi rimangono impresse).

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  11. #11

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923
    Ciao Danilo,
    questi sono un paio di link dove puoi iniziare a capire meglio il VBA:


    1. http://www.excelvba.it/corso/
    2. http://forum.wintricks.it/showthread.php?t=155252



    Questo è un altro link che mi si è rivelato utile:

    http://mikevba.altervista.org/cerca/cerca_full.php

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  12. I seguenti utenti hanno dato un "Like"


  13. #12
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571
    Grazie infinite.....

Discussioni Simili

  1. [Tutorial VBA] Range.End() - Range.OffSet() - Come operare sulle tabelle di dati
    Di dracoscrigno nel forum Imparando Excel & VBA - Tutorial di Excel-
    Risposte: 3
    Ultimo Messaggio: 29/03/17, 22:30
  2. [Risolto] Modificare link
    Di Mirco nel forum Domande su Excel in generale
    Risposte: 14
    Ultimo Messaggio: 23/12/16, 00:48
  3. [Risolto] Dichiarazione Range (Dim as range)
    Di camoncino nel forum Domande su Excel VBA e MACRO
    Risposte: 18
    Ultimo Messaggio: 08/11/16, 13:10
  4. Modificare Macro Archivia per includere dei Range diversi
    Di Lety88 nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 28/04/16, 09:11
  5. Modificare più formule
    Di filipp0 nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 20/12/15, 11:01

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •