Excel Forum Per condividere esperienze su Microsoft Excel

Cancella contenuto

  • Messaggi
  • OFFLINE
    gattodimarmo1980
    Post: 256
    Registrato il: 03/10/2015
    Città: ALBAREDO PER SAN MARCO
    Età: 44
    Utente Junior
    2003
    00 12/05/2020 19:51
    Buona sera forum, avrei bisogno gentilmente una macro che nel range B U del foglio mi cancella tutti i numeri a parte quelli evidenziati di arancione.Grazie Matteo
  • OFFLINE
    alfrimpa
    Post: 4.406
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 12/05/2020 20:27
    Ma un tentativo di scrivere una macro autonomamente non lo fai mai?

    Imparare qualcosa non ti interessa proprio?

    La macro che chiedi è di una semplicità assurda.

    Stai tranquillo che se provi il pc non esplode.
    [Modificato da alfrimpa 12/05/2020 20:28]

    Alfredo
  • OFFLINE
    duccio.73
    Post: 38
    Registrato il: 27/12/2016
    Città: SIENA
    Età: 50
    Utente Junior
    Office 2019/Office 365
    00 13/05/2020 08:22
    Ciao,
    se i dati sono sempre nelle stesse caselle puoi utilizzare il registratore di macro. O stiamo parlando di celle colorate che cambiano di posizione posizione di volta in volta?
    ---
    pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
  • OFFLINE
    alfrimpa
    Post: 4.407
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 13/05/2020 10:59
    Basta un semplicissimo ciclo For Each con un If all'interno.

    In italiano è una cosa del genere

    vb
    Per Ogni cella in Intervallo
        Se lo sfondo della cella non è colorato Allora
            Cancella il suo contenuto
        Fine Se
    Successiva cella


    Alfredo
  • OFFLINE
    duccio.73
    Post: 39
    Registrato il: 27/12/2016
    Città: SIENA
    Età: 50
    Utente Junior
    Office 2019/Office 365
    00 13/05/2020 11:15
    Ciao,
    la macro nel file allegato funziona se la cella è colorata manualmente o tramite macro
    ---
    pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
  • OFFLINE
    alfrimpa
    Post: 4.408
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 13/05/2020 11:48
    Io l'avrei scritta così

    vb
    Sub Cancella_Non_Colorate()
    Dim ur As Long
    Dim rng As Range
    Dim cella As Range
    ur = Cells(Rows.Count, 1).End(xlUp).Row
    Set rng = Range("B1:U" & ur)
    Application.ScreenUpdating = False
    For Each cella In rng
        If cella.Interior.ColorIndex = xlNone Then
            cella.ClearContents
        End If
    Next cella
    Application.ScreenUpdating = True
    End Sub
    

    Alfredo
  • OFFLINE
    gattodimarmo1980
    Post: 257
    Registrato il: 03/10/2015
    Città: ALBAREDO PER SAN MARCO
    Età: 44
    Utente Junior
    2003
    00 13/05/2020 15:48
    Buongiorno Duccio, buongiorno Alfredo non ho specificato che le celle colorate cambiano di posizione posizione di volta in volta, vi ringrazio per le macro ma provandola su altri dati ho il foglio completamente cancellato a parte le date. Sul foglio allegato del post1 tutte le due macro funzionano correttamente. Saluti Matteo
  • OFFLINE
    alfrimpa
    Post: 4.409
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 13/05/2020 16:43
    Però la prossima volta cerca di proporre tu del codice anziché richiedere ad altri di scriverlo.

    Poi se non funziona si vedrà il perchè.

    Con oltre 250 messaggi sul forum devi essere in grado di farlo
    [Modificato da alfrimpa 13/05/2020 16:43]

    Alfredo
  • OFFLINE
    gattodimarmo1980
    Post: 259
    Registrato il: 03/10/2015
    Città: ALBAREDO PER SAN MARCO
    Età: 44
    Utente Junior
    2003
    00 13/05/2020 18:14
    Va bene Alfredo la prossima volta buttero giù qualcosa io e per la modifica delle vostre macro cosa si può fare ? [SM=x423024] Buonasera Matteo
  • OFFLINE
    duccio.73
    Post: 41
    Registrato il: 27/12/2016
    Città: SIENA
    Età: 50
    Utente Junior
    Office 2019/Office 365
    00 13/05/2020 18:42
    Puoi allegare il file con alcune pagine che ti danno il problema?
    ---
    pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
  • OFFLINE
    gattodimarmo1980
    Post: 260
    Registrato il: 03/10/2015
    Città: ALBAREDO PER SAN MARCO
    Età: 44
    Utente Junior
    2003
    00 14/05/2020 05:27
    Buongiorno Duccio allego il file, lanciando la macro questa cancella
    tutto. Ciao Matteo
  • OFFLINE
    duccio.73
    Post: 42
    Registrato il: 27/12/2016
    Città: SIENA
    Età: 50
    Utente Junior
    Office 2019/Office 365
    00 14/05/2020 08:32
    ciao Matteo,
    a me la macro sembra funzionare correttamente anche nel file che hai inviato lasciando solo D283-G286, L296-Q304 e T305-U305.

    La macro di Alfredo è sicuramente più efficiente perché riduce il ciclo for - next (mi devo ricordare di non mettere cicli fissi ma cercare l'ultima riga) e funziona bene a patto di riempire la colonna A
    ---
    pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
  • OFFLINE
    alfrimpa
    Post: 4.411
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 14/05/2020 09:13
    Per svincolarsi dalla colonna A si potrebbe usare la proprietà CurrentRegion dell’oggetto Range o UsedRange dell'oggetto Worksheet

    Provate a vedere cosa succede eseguendo queste due macro sul foglio in questione

    vb
    Sub prova()
    Range("a1").CurrentRegion.Select
    End Sub


    vb
    Sub prova1()
    ActiveSheet.UsedRange.Select
    End Sub
    


    L'uso dell'una o dell'altra dipende da come sono disposti i dati sul foglio.

    Per approfondimenti cercate con Google "CurrentRegion" o "UsedRange"
    [Modificato da alfrimpa 14/05/2020 11:57]

    Alfredo
  • OFFLINE
    gattodimarmo1980
    Post: 261
    Registrato il: 03/10/2015
    Città: ALBAREDO PER SAN MARCO
    Età: 44
    Utente Junior
    2003
    00 14/05/2020 16:28
    Buongiorno Duccio, Buongiorno Alfredo, sto studiando molto vba e presto farò i corsi perché non voglio rimanere utente junior a vita,
    per ora Teoria 7 ,Pratica 3, capisco i concetti ma devo essere istruito. Le vostre macro vanno tutte e 2 lo sottolineo . La colonna A verrà riempita sempre.Dopo 2 ore ho capito il perchè all'esecuzione delle vostre mi si cancellava tutto. Allego il file con le due macro, nel foglio chiamato (dati per prova) ho inserito solo una riga, la macro mi cancella tutto perché la riga è stata copiata dal database e in questo ci sono delle regole di formattazione condizionale e io dovrei così rifarlo tutto. Non ci riesco proprio non è che voglio un codice chiavi in mano. Grazie Matteo

  • OFFLINE
    duccio.73
    Post: 43
    Registrato il: 27/12/2016
    Città: SIENA
    Età: 50
    Utente Junior
    Office 2019/Office 365
    00 14/05/2020 17:40
    Ciao Matteo,
    come ti avevo scritto la macro avrebbe funzionato se le celle non fossero state evidenziate dalla formattazione condizionale.

    Per far funzionale le macro dovresti sostituire

    If cella.Interior.Color

    con

    If cella.DisplayFormat.Interior.Color

    Fammi sapere se funziona
    ---
    pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
  • OFFLINE
    dodo47
    Post: 2.819
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 14/05/2020 17:41
    matteo....sei un capolavoro!!!

    Prima alleghi un foglio con celle colorate, poi spunta fuori che il colore dipende da una formattazione condizionale......



    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    gattodimarmo1980
    Post: 262
    Registrato il: 03/10/2015
    Città: ALBAREDO PER SAN MARCO
    Età: 44
    Utente Junior
    2003
    00 14/05/2020 18:50
    Funziona Duccio in tutte le due macro grazie. Buongiorno Domenico non
    mi ero proprio accorto perché il database è stato creato e successivamente con un macro ho colorato di arancione certi valori. Dopo di che ho copiato tutto il foglio su un altro foglio della cartella di lavoro e ora spostandoli in questo nuovo foglio non mi sono proprio ricordato .Va be grazie a Duccio73 ora ho imparato DisplayFormat, ringrazio molto anche Alfredo, un saluto a tutti e tre. [SM=x423017]