elimina colonne dinamicamente



  • elimina colonne dinamicamente
    di barnacle data: 28/10/2014 18:57:35

    Gentili utenti del forum, posto il mio primo thread dopo avere seguito da mesi le vs interessanti discussioni e risoluzioni. Al riguardo, non sono riuscito a trovare la soluzione nei post precedenti.
    In pratica: sto facendo un'esercitazione tratta da un testo tesa
    1) a ricercare col metodo Find una determinata data, ad es. 01/05/2000 nella cella I1;
    2) a nascondere tutte le colonne a sinistra di essa escluse A e B
    Se nella cella I1 metto la parola "cane" il codice funziona, ma se nella cella I1 c'è la data il codice non funziona (eppure stando al testo dovrebbe funzionare).Escluderei problemi di formattazione...
    Ringrazio cordialmente.
     
    Sub nascondimi()
    Dim myfind As Range
    Set myfind = Rows(1).Find(What:="apr-2000", _
        After:=Range("a1"), LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If Not myfind Is Nothing Then
    Range("c1", myfind.Offset(0, -1)).EntireColumn.Hidden = True
    End If
    End Sub



  • di barnacle data: 28/10/2014 19:04:06

    nel codice ho erroneamente inserito "apr-2000" mentre volevo inserire 01/05/2000, comunque non mi funziona lo stesso



  • di barnacle data: 28/10/2014 19:14:38

    ho rialllegato il file con le dovute correzioni (anche nel nome)



  • di scossa data: 28/10/2014 20:04:30

    cit: "ho rialllegato il file con le dovute correzioni (anche nel nome)"

    se non indichi il nome dei file che alleghi costringi gli altri a scaricarli entrambi per capire qual'è quello giusto .......



    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)




  • di Zer0Kelvin data: 28/10/2014 22:20:46

    Ciao.
    Se cerchi di confrontare una data con una stringa di testo la ricerca non avrà mai esito positivo; le date in Excel sono numeri.
    Per capire meglio fai questa prova:
    -formatta una qualsiasi cella come data
    -inserisci una data in quella cella
    -ora cambia il formato della cella in numero
    Come potrai vedere, la cella in realtà contiene un numero.
    Quello che devi cercare, non è "01/05/2000" (stringa di testo) ma CDate("01/05/2000") cioè la data corrispondente a quella stringa.



  • di barnacle data: 29/10/2014 09:45:36

    Ti ringrazio tanto della gentilezza, ZerOKelvin, neanche ci pensavo di dover utilizzare la funzione di conversione; anche perchè il testo da cui ho preso l'esercizio non allertava su questa esigenza.

    per Scossa: scusa, ma gli ultimi file allegati non sono i primi da sx? o almeno così mi sembrava di aver inteso. Poi i file allegati sono due, non cinque o sei o sette o otto: hai perso piu tempo a rispondermi che ad aprire il file...



  • di scossa data: 29/10/2014 13:32:11

    cit.: " ....Poi i file allegati sono due, non cinque o sei o sette o otto: hai perso piu tempo a rispondermi che ad aprire il file... "

    Sicuramente, ma forse - in questo modo - la prossima volta che posti un quesito, allegando un file, ti ricorderai di indicarne il nome.

    La ritengo una questione di rispetto verso gli altri: chi chiede aiuto dovrebbe farsi carico dell'onere di facilitare al massimo gli altri utenti nel loro intento di aiutare, questo significa essere il più precisi possibile nel formulare le richieste.

    Tempo addietro c'era un thread in evidenza, fisso in cima a tutti gli altri, in cui si richiedeva, appunto, di indicare sempre il nome del file che si allega ...



    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di barnacle data: 29/10/2014 13:49:12

    Ciao Scossa, ti ringrazio in tutti i casi, sicuramente è giusto. Terrò presente quanto hai evidenziato per il futuro. Ciao