Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Per esperto di office (excel) e relativa programmazione..

    Dunque mi piacerebbe poter realizzare qualcosa di questo genere...

    Dunque...

    1)In un file excel dovrei poter eliminare da un insieme di colonne contenenti valori numerici solo quelli dispari cliccando su apposito tasto appositamente creato

    2)Cliccando su di un altro apposito tasto dovrei successivamente poter ordinare i valori pari rimasti in ordine crescente

    GRAZIE infinite a chiunque mi potrà dare una mano in tal senso

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Per cancellare i valori dispari basta una macro del genere.
    Nel mio esempio scorrerà l'intervallo a1:d5, tu adattalo alle tue esigenze.
    Per la seconda domanda non ho capito dove devono essere mostrati i valori pari rimasti, in una nuova colonna o dove?

    codice:
    Sub pari()
    For Each cella In ActiveSheet.Range("a1:d5")
      If cella.Value Mod 2 <> 0 Then
      cella.Value = ""
      End If
    Next cella
    End Sub

  3. #3
    Uhm....
    eliminare da un insieme di colonne contenenti valori numerici
    Penso tu sappia che l'eliminazione di un valore da una tabella di excel ci sono diversi comportamenti:
    • - cancellare il contenuto (rimane la cella vuota)
    • - spostare il contenuto che si trova a destra della cella verso sinistra
    • - spostare il contenuto sotto la cella verso l'alto
    • - eliminare l'intera riga
    • - eliminare l'intera colonna

    dovrei successivamente poter ordinare i valori pari rimasti in ordine crescente
    Come sopra: Colonna per colonna? O tutti insieme data una colonna di chiavi?

  4. #4
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    grazie ad entrambi per la celere risposta

    Per quanto riguarda la prima domanda vorrei semplicemente..

    - cancellare il contenuto (rimane la cella vuota) contenuto: dispari

    e per quanto riguarda la seconda... l'ordinamento dovrebbe essere riga per riga in orizzontale...

    es...

    ho

    1-5-4-3-2

    clicco bottone elimina dispari

    rimangono:

    4-2

    clicco bottone ordina da sx a dx in modo crescente

    rimangono:

    2-4

    Spero di essere stato un po' più chiaro

    Grazie di nuovo


  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Il numero massimo di colonne contenenti i valori è noto a priori oppure no?

  6. #6
    Be', la routine descritta da nicola75ss allora è più o meno corretta.

    Io in genere però le scrivo così:
    codice:
    Sub Pari
      Dim Cella
      For Each Cella In Selection
        If Cella Mod 2 Then Cella.Value = ""
      Next Cella
    End Sub
    Per quanto riguarda l'ordinamento:
    codice:
    Sub OrdinaRighe()
      Dim Riga
      For Each Riga In Selection.Rows
        Riga.Sort Key1:=Riga.Cells(1, 1), Orientation:=xlLeftToRight
      Next Riga
    End Sub
    Per creare un paio di pulsanti che eseguono i comandi, hai due scelte:
    inserire degli shape (dalla toolbar dei disegni, può essere un rettangolo o un immagine)
    inserire un pulsante (dalla toolbar moduli)

    Una volta inserito l'oggetto, tasto dx -> Assegna macro -> vai a cercare Pari e OrdinaRighe. Per eseguirle, selezioni l'area su cui vuoi operare e premi il pulsante!

    Fatto tutto come volevi?

    Ciao
    Lucio
    Perché un poco sì, ma anche un poco no

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Non ho parole!!!

    Fra tutti e due mi avete aperto un mondo!!!

    GRAZIE infinite!

    funziona tutto alla grande



    ps:Mi è entrata voglia di imparare meglio excel e la sua programmazione...

  8. #8
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Approfitto.. della vostra bravura e gentilezza...

    Originariamente inviato da lucio.menci
    Be', la routine descritta da nicola75ss allora è più o meno corretta.

    Io in genere però le scrivo così:
    codice:
    Sub Pari
      Dim Cella
      For Each Cella In Selection
        If Cella Mod 2 Then Cella.Value = ""
      Next Cella
    End Sub
    Per quanto riguarda l'ordinamento:
    codice:
    Sub OrdinaRighe()
      Dim Riga
      For Each Riga In Selection.Rows
        Riga.Sort Key1:=Riga.Cells(1, 1), Orientation:=xlLeftToRight
      Next Riga
    End Sub
    Per creare un paio di pulsanti che eseguono i comandi, hai due scelte:
    inserire degli shape (dalla toolbar dei disegni, può essere un rettangolo o un immagine)
    inserire un pulsante (dalla toolbar moduli)

    Una volta inserito l'oggetto, tasto dx -> Assegna macro -> vai a cercare Pari e OrdinaRighe. Per eseguirle, selezioni l'area su cui vuoi operare e premi il pulsante!

    Fatto tutto come volevi?

    Ciao
    Lucio
    Questo cod sopra postato funziona alla grandissima per excel di office ma.. per caso.. sapete anche come "trasformarlo" affinchè sia comprensibile anche da OpenOffice Excel?

    Io per adesso ho provato ad assegnare ad un bottone lo stesso codice...

    Sub Elimina

    Dim Cella
    For Each Cella In Selection
    If Cella Mod 2 Then Cella.Value = ""
    Next Cella


    End Sub

    ma mi da questo errore bloccante "errore di runtime basic variabile dell'oggetto non impostata" e mi ferma il break point del debug sulla riga -For Each Cella Mod 2 Then Cella In Selection

    E' come se non sentisse affatto la selezione fatta prima di premere il bottone come invece avviene senza errori con excel di office

    GRAZIE mille comunque


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.