Help su doppie



  • Help su doppie
    di Francesco (utente non iscritto) data: 29/10/2012 16:31:23

    Allora sto cercando di perfezzionare il match delle doppie

    in prima battuta ho modificato il codice in modo che non mi facesse dei calcoli su entrambi gli id aggiungendo goto prossima e facedolo cosi uscire a next cella (cella successiva da controllare)

    With Sheets(F1)
    Set doppione = .Range("A2:A" & riga + 1)
    If Application.CountIf(doppione, cella.Value) > 1 Then
    cella.Offset(0, 13) = "DOPPIA"
    trovato = True
    GoTo Prossima
    End If
    End With

    ora per dare un "nome" al tipo di doppie ho aggiunto dei parametri in base ai quali cambiare il nome all'id

    Ma non funziana! dove sbaglio? (devo identificare 5 tipi di doppie diverse)
     
    With Sheets(F1)
                        Set doppione = .Range("A2:A" & riga + 1)
                        If Application.CountIf(doppione, cella.Value) > 1 and   cella.offset(0,1)="Ciao" Then
                            cella.Offset(0, 13) = "DOPPIA"
                            trovato = True
                            GoTo Prossima
                        else  If Application.CountIf(doppione, cella.Value) > 1 and   cella.offset(0,1)="addio"
    cella.Offset(0, 13) = "DOPPIA TIPO 2"
                            trovato = True
                            GoTo Prossima
                    End With


  • apertura file da un cartella
    di Claudio (utente non iscritto) data: 29/10/2012 16:33:49

    Salve a tutti,
    ho qualche centinaio di file in una cartella, tutti derivanti da un'unico foglio excel, salvato con nomi diversi. Devo fare un programma che mi apre uno x uno i file, memorizza alcuni dati, e li copia in un archivio excel. Posso farlo con VBA ?



  • di Francesco (utente non iscritto) data: 29/10/2012 16:47:22

    Perso in bicchiera acqua! mi sembra risolto. ho aggiunto altre 4 condizioni e mi pare funzionare
     
    With Sheets(F1)
                        Set doppione = .Range("A2:A" & riga + 1)
                        If Application.CountIf(doppione, cella.Value) > 1 And cella.Offset(0, 8) = "ciao" Then
                            cella.Offset(0, 13) = "DOPPIA"
                            trovato = True
                            GoTo Prossima
                        End If
                                            
                        If Application.CountIf(doppione, cella.Value) > 1 And cella.Offset(0, 8) = "addio" Then
                            cella.Offset(0, 13) = "doppia tipo 2"
                            trovato = True
                            GoTo Prossima
                        End If


  • PER CLAUDIO
    di Francesco (utente non iscritto) data: 29/10/2012 16:49:03

    apertura file da un cartella di Claudio

    ciao claudio devia aprire un'altra discussione a questo indirizzo e cliccare su "nuova discussione"

    excelvba.altervista.org/Forum/forum.php?f=1



  • di Francesco (utente non iscritto) data: 29/10/2012 17:45:26

    Ho bisogno di rilassarmi (per l'icona con faccina che sbatte la stesta si può fare qualcosa? )



  • di Vecchio Frac data: 29/10/2012 21:49:32

    @Claudio
    Non proseguire un thread già iniziato da altri con un argomento diverso, ma aprine uno nuovo.
    Grazie.





  • di Vecchio Frac data: 29/10/2012 22:06:07

    @Francesco
    ...guai a te se ti vedo usare ancora Goto: riscrivi tutto con un While ... Wend o meglio con un Do ... Loop
    per favore... ^_^





  • di Francesco (utente non iscritto) data: 29/10/2012 22:23:10

    Ok!!! obbedisco!!!
    quando rivedo l'intero codice lo riscriverò!!! salvo questa pagina e la metto in bella vista sul desktop!!



  • di Vecchio Frac data: 29/10/2012 22:29:58

    ROTFL ^_^
    comunque il codice va bene... mi hai mostrato che esiste Application.CountIf: non ci credevo, perchè pensavo che fosse una funzione propria di Worksheetfunction e invece funziona davvero!! Ho approfondito e ho scoperto che è un'assegnazione implicita di Excel.Worksheetfunction davvero, solo scritto in un altro modo :P
    Non si finisce mai di imparare e quindi ti ringrazio!!





  • di Francesco (utente non iscritto) data: 29/10/2012 22:38:13

    Non ringraziare me ma Harry! il codice è suo! io l'ho rivisto aggiungendo and e il goto; il tutto con cognizione di causa!
    Questo è il bello che tutti imparano da tutti!! ^_^



  • di Francesco (utente non iscritto) data: 29/10/2012 22:43:45

    per pura speculazione intellettuale in rete ho trovato questo codice che pensavo di usare al posto di Application.CountIf

    Sub Ferie()
    Dim C As Object
    Dim Valore As String
    Dim Elenco As Range
    Dim Conta As Integer
    Set Elenco = ActiveSheet.UsedRange
    Valore = "FERIE"
    For Each C In Elenco
    If UCase(C.Value) = Valore Then
    Conta = Conta + 1
    ActiveSheet.Cells(1, 1) = Conta
    End If
    Next
    End Sub
    __________________