Freeforumzone mobile

Macro seleziona righe nascoste.

  • Posts
  • OFFLINE
    gattodimarmo1980
    Post: 165
    Registered in: 10/3/2015
    Location: ALBAREDO PER SAN MARCO
    Age: 40
    Junior User
    2003
    00 8/24/2019 5:56 PM
    Buon giorno allego file contenente due macro all'interno.Mi servirebbe una macro che mi seleziona solo le righe nascoste perché
    devo riportarle poi in un altro foglio. Grazie buon Sabato
  • OFFLINE
    dodo47
    Post: 2,348
    Registered in: 4/6/2013
    Location: ROMA
    Age: 72
    Veteran User
    2010
    00 8/25/2019 11:02 AM
    ciao
    questo copia le righe nascoste nel foglio2

    saluti

    Dim wk As Worksheet
    Set wk = Worksheets("foglio2")
    ur = Range("A" & Rows.Count).End(xlUp).Row
    For j = 1 To ur
    If Cells(j, 1).EntireRow.Hidden = True Then
    ur1 = wk.Range("A" & Rows.Count).End(xlUp).Row + 1
    Cells(j, 1).EntireRow.Copy
    wk.Range("A" & ur1).PasteSpecial xlPasteValues
    end if
    next
    




    [Edited by dodo47 8/25/2019 11:03 AM]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    GiuseppeMN
    Post: 3,444
    Registered in: 4/3/2013
    Master User
    Excel 2000 - 2013
    00 8/25/2019 11:11 AM
    Buona giornata, Matteo;
    proverei a:
    - aggiungere il Foglio di lavoro "Foglio2"
    - modificare il tuo Codice VBA in questo modo:

    Option Explicit
    
    Sub Nascondi()
    Application.ScreenUpdating = False
    Dim NRc As Long, x As Long, y As Long
    Dim Vlr As Byte
    Dim Rng As Range
     
        NRc = Range("A" & Rows.Count).End(xlUp).Row
        Set Rng = Range(Cells(1, 3), Cells(NRc, 7))
            Range(Cells(1, 1), Cells(NRc, 1)).EntireRow.Hidden = True
        Vlr = InputBox("Digitare il numero da valutare compresa tra 1 e 90")
            For x = 1 To NRc
                If Not Application.WorksheetFunction.CountIf(Range("A" & x & ":C" & x), Vlr) = 0 Then
                    Cells(x, 1).EntireRow.Hidden = False
                Else
                    y = y + 1
                    Range(Cells(x, 1), Cells(x, 5)).Copy
                    Sheets("Foglio2").Cells(y, 1).PasteSpecial Paste:=xlPasteValues
                End If
            Next x
                Application.CutCopyMode = False
    Application.ScreenUpdating = True
    End Sub
    

    Potrebbe funzionare.

    Fai sapere se hai problemi.



    A disposizione.

    Buon fine settimana.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    gattodimarmo1980
    Post: 165
    Registered in: 10/3/2015
    Location: ALBAREDO PER SAN MARCO
    Age: 40
    Junior User
    2003
    00 8/25/2019 1:28 PM
    Ciao Giuseppe ciao Domenico intanto vi ringrazio e rispondo a tutti e 2.Ho provato tutte i due codici vanno tutti e due perfettamente ma il problema è un'altro. Nel foglio2 devono essere riportate le righe nascoste cioè quelle che già sto vedendo nel foglio1.Allego file con 4 moduli e dati non sensibili. In pratica la macro deve fare il contrario dei vostri 2 codice. Grazie matteo
  • OFFLINE
    GiuseppeMN
    Post: 3,445
    Registered in: 4/3/2013
    Master User
    Excel 2000 - 2013
    00 8/25/2019 5:03 PM
    Buon pomeriggio, Matteo;
    perdonami, ma non mi è ben chiaro quello che desideri ottenere.

    Se vuoi solo copiarli, nel Codice VBA che ho proposto, prova ad eliminare solo il comando "Else".



    Buon fine settimana.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    dodo47
    Post: 2,349
    Registered in: 4/6/2013
    Location: ROMA
    Age: 72
    Veteran User
    2010
    00 8/25/2019 7:08 PM
    Re:
    Ciao
    se in due ti abbiamo fornito la stessa soluzione, forse dovresti pensare che quello che hai scritto non è comprensibile.


    gattodimarmo1980, 25/08/2019 13.28:

    .... Nel foglio2 devono essere riportate le righe nascoste cioè quelle che già sto vedendo nel foglio1.



    se sono nascoste come fai a vederle?




    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    gattodimarmo1980
    Post: 166
    Registered in: 10/3/2015
    Location: ALBAREDO PER SAN MARCO
    Age: 40
    Junior User
    2003
    00 8/26/2019 6:59 PM
    Ciao Domenico Ciao Giuseppe ho sbagliato totalmente il Titolo della discussione. Io una volta che nascondo le righe sul foglio1 quando le porto manualmente nel foglio2 ho tutte le righe del foglo1 e invece vorrei portare solo quelle visualizzate dopo aver lanciato la macro nascondi. Hai ragione Domenico quello che ho scritto non è comprensibile farò più attenzione la prossima volta. [SM=x423047]
  • OFFLINE
    dodo47
    Post: 2,350
    Registered in: 4/6/2013
    Location: ROMA
    Age: 72
    Veteran User
    2010
    00 8/26/2019 7:14 PM
    per quanto attiene al mio suggerimento del post #2,
    sostituisci "True" con "False"

    If Cells(j, 1).EntireRow.Hidden = False Then

    saluti



    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    gattodimarmo1980
    Post: 167
    Registered in: 10/3/2015
    Location: ALBAREDO PER SAN MARCO
    Age: 40
    Junior User
    2003
    00 8/26/2019 8:04 PM
    Domenico suggerimento perfetto grazie. Riscontro perfetto .Ringrazio
    anche Giuseppe MN ho modificato il comando else e tengo il tuo codice
    per un altro lavoro. [SM=x423017] Complimenti a tutte e 2.Ciao Matteo
  • OFFLINE
    gattodimarmo1980
    Post: 173
    Registered in: 10/3/2015
    Location: ALBAREDO PER SAN MARCO
    Age: 40
    Junior User
    2003
    00 11/10/2019 11:08 AM
    Errore di compilazione Variabile non definita.
    Buona Domenica nel foglio1 ho tre macro la macro Visualizza
    e la macro Nascondi funzionano perfettamente.La Macro Riporta non funziona dovrei riportare con questa nel foglio2 solo le righe che visualizzo dopo averle nascoste.Grazie anticipatamente Matteo. Allego
    un foglio nuovo è cambiato il range e non riesco a modificarlo.
  • OFFLINE
    GiuseppeMN
    Post: 3,529
    Registered in: 4/3/2013
    Master User
    Excel 2000 - 2013
    00 11/10/2019 12:02 PM
    Buona giornata, Matteo;
    credo potresti provare con questo Codice VBA modificato:
    Sub riporta()
    Application.ScreenUpdating = False
    Dim Ur As Long, K As Long, ur1 As Long
    Dim wk As Worksheet
        Set wk = Worksheets("foglio2")
        Ur = Range("A" & Rows.Count).End(xlUp).Row
            For K = 1 To Ur
                If Cells(K, 1).EntireRow.Hidden = False Then
                    ur1 = wk.Range("A" & Rows.Count).End(xlUp).Row + 1
                        Cells(K, 1).EntireRow.Copy
                        wk.Range("A" & ur1).PasteSpecial xlPasteValues
                    End If
                Next K
                    Application.CutCopyMode = False
    Application.ScreenUpdating = True
        Set wk = Nothing
    End Sub
    

    Fai sapere se hai ancora problemi.



    A disposizione.

    Buon fine settimana.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    gattodimarmo1980
    Post: 174
    Registered in: 10/3/2015
    Location: ALBAREDO PER SAN MARCO
    Age: 40
    Junior User
    2003
    00 11/10/2019 12:30 PM
    Perfetta Giuseppe ti ringrazio. Complimenti Matteo .Buona domenica.
  • OFFLINE
    alfrimpa
    Post: 4,263
    Registered in: 6/21/2013
    Location: NAPOLI
    Age: 66
    Master User
    Excel 2013
    00 11/10/2019 2:23 PM
    Re: Errore di compilazione Variabile non definita.
    gattodimarmo1980, 10/11/2019 11.08:

    Buona Domenica nel foglio1 ho tre macro la macro Visualizza
    e la macro Nascondi funzionano perfettamente.La Macro Riporta non funziona dovrei riportare con questa nel foglio2 solo le righe che visualizzo dopo averle nascoste.Grazie anticipatamente Matteo. Allego
    un foglio nuovo è cambiato il range e non riesco a modificarlo.



    Matteo mi sembra inverosimile che tu, con oltre 170 messaggi sul forum e gli innumerevoli aiuti ricevuti, non sappia interpretare il messaggio di errore che hai riportato in oggetto.

    Ma un minimo di VBA non vuoi proprio studiarlo?

    Aspetti che siano sempre altri che ti tolgano le castagne dal fuoco?


    Alfredo