seleziona celle copia modifica



  • seleziona celle, copia, modifica
    di Franco1985 (utente non iscritto) data: 06/03/2014 18:26:53

    Ciao a tutti voi!
    Arrivo al dunque, mi trovo di fronte ad un'enorme tabella excel con un'enorme quantità di numeri, ATTENZIONE! alcuni di questi numeri sono scritti in corsivo (questa tabella la chiamo START).
    Da questa tabella devo selezionare 2 colonne e copiarle in un nuovo foglio excel (lo chiamo TARGET) con una bella complicazione: i numeri scritti in corsivo devono risultare nella tabella TARGET moltiplicati per 2 e col segno "<" scritto davanti, scritti in carattere NON corsivo ed ovviamente insieme a tutti gli altri numeri "normali" della tabella START.
    Esempio: START TARGET
    23 80(corsivo) 23 <40
    Si può fare una Macro che faccia questo? Vi ringrazio anticipatamente per il prezioso aiuto.



  • di patel data: 06/03/2014 18:31:35

    allega un file di esempio con i pochi dati ed il risultato desiderato





  • di Lucas87 data: 06/03/2014 18:33:36

    cit "i numeri scritti in corsivo devono risultare nella tabella TARGET moltiplicati per 2 e col segno "<""
    cit "START TARGET 23 80(corsivo) 23 <40 "

    Forse hai scambiato 80 e 40? o ti sei spiegato male?



  • di Franco1985 (utente non iscritto) data: 06/03/2014 18:39:42

    Acc... mi sono spiegato male. Ho scambiato i numeri 40 ed 80



  • di Franco1985 (utente non iscritto) data: 06/03/2014 19:38:32

    ho allegato il file di esempio. La tabella TARGET però deve essere creata in un foglio excel "nuovo".
    Grazie infinitamente a tutti



  • di Vecchio Frac data: 06/03/2014 21:00:10

    Bè, è meno complicato di quello che credi, forse un pochino complesso, da starci attenti, ma in fondo Excel permette di:
    - scorrere un range
    - esaminare cella per cella durante lo scorrimento
    - capire se una cella è in corsivo o no
    - copiare la cella da un'altra parte (foglio nuovo, file nuovo, dove vuoi)
    - copiare la cella da un'altra parte raddoppiandone il contenuto se era in corsivo

    Tu come sei messo a conoscenza di VBA? ce la faresti a realizzare una macro col registratore e analizzarne il contenuto per partire con le tue personalizzazioni?





  • di Franco1985 (utente non iscritto) data: 06/03/2014 23:58:01

    certamente, con le macro registrate ho realizzato diverse applicazioni. Però questo nuovo caso mi ha spiazzato. Non so da dove partire e come dire ad excel di riconoscere il caratte corsivo (principalmente)



  • di Vecchio Frac data: 07/03/2014 14:12:24

    cit. "come dire ad excel di riconoscere il caratte corsivo (principalmente)"
    ---> Sei a buon punto. Ti basta ricordare che le formattazioni di carattere sono attributi dell'oggetto Font: il codice
    activecell.Font.Italic = True
    activecell.Font.Bold = True

    imposta per la cella attiva il carattere corsivo e grassetto.
    Scrivendo Font., dopo il punto ti compare l'elenco dei metodi disponibili.





  • di Vecchio Frac data: 07/03/2014 14:14:18

    (segue)
    Quindi ti basta testare con If se la cella contiene un valore in corsivo:
    If cella.Font.Italc Then ...
    dove ovviamente "cella" è una variabile di tipo Range che contiene un riferimento ad ogni cella del range:
    For Each cella in myRange





  • di Franco1985 (utente non iscritto) data: 07/03/2014 15:43:25

    se ho capito bene, prima indico l'intervallo di controllo con il comando "For each...." chimando il Range come variabile, successivamente alla stessa variabile (Range di celle) imposto il vincolo del carattere corsivo con il comando "If Font.Italic then"!
    è corretto?
    in ogni caso ci provo e ti aggiorno



  • di Vecchio Frac data: 07/03/2014 17:05:40

    cit. "prima indico l'intervallo di controllo ..."
    ---> Sì.

    cit. " imposto il vincolo del carattere corsivo"
    ---> imposti una condizione da testare.

    cit. "è corretto?"
    ---> Sì.

    cit. "ci provo"
    ---> +1





  • di Franco1985 (utente non iscritto) data: 10/03/2014 18:56:46

    Sono tornato! ciao!
    In immagine 2 ho provato a compilare una macro che perlomeno scrivesse in un range (TARGET) i numeri corsivi a carattere normale e i numeri normali lasciati come tali. Addirittura mi dice che sbaglio la sintassi dei comandi IF THEN ELSEIF....