+ Rispondi al Thread
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: Come elimino in automatico tramite macro alcune colonne?

  1. #1
    littlesaint non è in linea Novello
    Post
    27

    Question Come elimino in automatico tramite macro alcune colonne?

    Ciao a tutti, Vi scrivo nuovamente dopo diverso tempo per chiederVi aiuto e risparmiare ore di lavoro manuale.

    Ho un file di Excel denominato "materie.xls" composto da un unico foglio, 4668 righe ed 8 colonne.
    Nelle colonne 3(C) 4(D) 5(E) 6(F) ho delle possibili risposte alla domanda che sta nella colonna 2(B).
    Nella colonna 7(G) ho indicato qual'è la risposta esatta alla domanda, ci sarà quindi a volte indicato "A", a volte "C" etc.
    Vorrei creare una macro che lasci per ogni riga solamente la colonna con la risposta esatta, altrimenti dovrei fare il lavoro a mano per quasi 5000 righe

    in pratica avrò una domanda così composta (tra parentesi la colonna):

    1(A) Che forum è questo?(B) di scacchi(C) di informatica(D) di fotografia(E) di sport(F) D(G)

    spero di esser stato più chiaro possibile, Vi prego di spiegarmi come fare ammesso che sia possibile, tenendo presente che ne so zero di queste cose, quindi, come se spiegasse ad un bambino

    Grazie infinite!!

  2. #2
    GiuseppeMN non è in linea Scribacchino
    Post
    759
    Buona giornata,littlesaint;
    premesso che la Tua richiesta:
    Come elimino in automatico tramite macro alcune colonne?
    l'ho interpretata non come eliminare ma nascondere le colonne, una soluzione potrebbe venire da un codice VBA
    che utilizzi la funzione Select Case.
    Sarebbe un codice di poche righe che consente di visualizzare solo la colonna congruente con il contenuto della
    Cella in colonna "G"

    Se posso chiedere, che conoscenze hai di VBA?

    Se Tu potessi inviare una Tua proposta di Codice, possiamo vedere come ottenere una soluzione ottimale.

    A disposizione.

    Buona giornata.

    Giuseppe

  3. #3
    littlesaint non è in linea Novello
    Post
    27
    Potrebbe andare benissimo
    Anche nascondere le colonne lasciando
    solo la colonna congruente con il contenuto della
    Cella in colonna "G".
    Purtroppo non ho alcuna conoscenza in vba.

    Grazie per l'aiuto

  4. #4
    L'avatar di dodo47
    dodo47 non è in linea Topo di biblioteca
    Post
    3,107
    Ciao
    forse non ho capito io...ma non puoi nascondere le colonne, perchè non è detto che quella colonna contenga la risposta errata per tutte le domande...o sbaglio?
    Es:
    col B.....................col C.......col D...........col E................col G
    Come ti chiami?......pippo.....domenico.....paperina...... ....domenico
    quanti anni hai?........35..........10...............60....... ..........60

    Ora, se mi chiamo domenico e ho 60 anni, capisci bene che se nascondi le colonne con risposta errata, non vedi più niente.

    Quindi una soluzione potrebbe essere quella di evidenziare (rosso o quel che vuoi) le celle con risposta esatta.

    saluti

  5. #5
    littlesaint non è in linea Novello
    Post
    27
    Hai ragione non posso nascondere le colonne ma magaro le singole celle?
    Evidenziarle non puó andar bene..le devo rinuovere o nascondere...

    Grazie per gli aiuti

  6. #6
    L'avatar di dodo47
    dodo47 non è in linea Topo di biblioteca
    Post
    3,107
    Ciao
    le celle non si nascondono, tuttalpiù puoi dargli un colore di carattere bianco alle risposte errate, ma andandoci sopra le vedresti nella barra della formula a meno che tu non la nasconda da strumenti > opzioni ma poi dovresti proteggere il foglio per impedirne il ripristino.

    Potresti creare un foglio con solo le risposte esatte in un'unica colonna e nascondere il foglio originale.

    saluti

  7. #7
    littlesaint non è in linea Novello
    Post
    27
    Si ma per creare un foglio con le sole risposte esatte come posso fare se non a mano?
    Mi va benissimo un foglio con le sole risposte esatte.. E le domande ovviamente.
    Mi va bene qualsiasi soluzione che mi consenta di avere su un foglio solo dimanda e risposta esatta

  8. #8
    L'avatar di dodo47
    dodo47 non è in linea Topo di biblioteca
    Post
    3,107
    Ciao
    il fatto che tu non abbia "...alcuna conoscenza in vba...." rende le cose difficili.

    Si presume che chi pone una qualche domanda abbia almeno le basi minime indispensabili per interloquire.

    Così sarebbe come consegnarti un progettino "chiavi in mano" (detto "pappa pronta") e fortemente deprecato dal nostro Regolamento che ti invito a leggere.

    Sforzati di fare qualcosa, magari aiutandoti con il registratore di macro, ma in questo caso, lo vedo poco risolutivo.

    In alternativa e senza macro, potresti utilizzare nel foglio Risposte la funzione Cerca.Orizz( leggi help), es:

    Foglio domande:

    B1 :domanda
    C2~F2: le 4 risposte
    G2: la risposta esatta

    e così a seguire nelle celle sottostanti.

    Nel foglio risposte :
    in col B: domanda ATTENZIONE: nello stesso ordine del foglio domande:

    in col C: =CERCA.ORIZZ(Foglio1!G2;Foglio1!$B$2:$F$100;1;FALS O)
    che trascini fino all'ultima domanda.

    E' un po' rigido, ma....

    saluti

  9. #9
    littlesaint non è in linea Novello
    Post
    27
    Ho ricevuto una risposta migliore, rapida e precisa che scrivo per Vs. conoscenza, vi ringrazio comunque per l'aiuto. Di seguito la macro che mi è stata indicata, che ne pensate??:

    codice:
    Option Explicit 
    Sub Elimina() 
    Dim i As Integer 
    For i = 2 To 4668 
       If Range("G" & i) = Range("C1") Then 
          Range("D" & i).Value = "" 
          Range("E" & i).Value = "" 
          Range("F" & i).Value = "" 
          Range("G" & i).Value = "" 
       End If 
       If Range("G" & i) = Range("D1") Then 
          Range("C" & i).Value = "" 
          Range("E" & i).Value = "" 
          Range("F" & i).Value = "" 
          Range("G" & i).Value = "" 
       End If 
       If Range("G" & i) = Range("E1") Then 
          Range("C" & i).Value = "" 
          Range("D" & i).Value = "" 
          Range("F" & i).Value = "" 
          Range("G" & i).Value = "" 
       End If 
       If Range("G" & i) = Range("F1") Then 
          Range("C" & i).Value = "" 
          Range("D" & i).Value = "" 
          Range("E" & i).Value = "" 
          Range("G" & i).Value = "" 
       End If 
    Next 
    End Sub
    Ultima modifica di @Alex; 01-04-2013 19:52  Motivo: Usiamo i TAG per il codice...????

  10. #10
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,471
    Blogs
    5
    Quote Originariamente inviato da littlesaint Visualizza il messaggio
    Ho ricevuto una risposta migliore, rapida e precisa
    Meglio così

    che ne pensate??
    Ma non hai detto che era migliore?

    Cosa aggiungere?
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

+ Rispondi al Thread
Pagina 1 di 3 123 ultimoultimo

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi