+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24

Discussione: Ricerca e estrapolazione di determinate righe

  1. #11
    PaoloTalini non è in linea Scribacchino
    Luogo
    Pontedera (PI)
    Post
    862
    valetin;

    Che codice stai usando?
    Se usi quello da me proposto e se:

    codice:
    Sheets("check settaggi").Cells(idiR, 6)
    La scheda "check settaggi" nella riga 'idiR' della colonna '6' o colonna 'F' contiene
    un valore 0/1/2/3 allora il codice scrive nella colonna 2/3/4 o colonna B/C/D
    quanto hai richiesto.

    Questo potrebbe non funzionare se il valore cella fossero diverso da 0/1//2/3 o
    se la scheda avesse un nome diverso da quello definito da codice "check settaggi",
    in questo caso darebbe un errore di debug.
    Verifica da debug, puoi inserire, nel codice, l'istruzione
    codice:
    Stop
    , in un qualsiasi rigo, e verificare cosa sta facendo il codice.
    P. Talini
    __________________________________________________ _______________________________________
    Tutti sanno che una cosa è impossibile da realizzare,
    finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

  2. #12
    L'avatar di valetin
    valetin non è in linea Novello
    Post
    11
    Ciao Paolo, scusa per la latitanza di oggi, ma ero fuori ufficio,
    praticamente a me non mi corregge e fa vedere le celle BCD sul foglio script pcm, errori di debug non ci sono, ma semplicemente non montra i valori corretti come da condizioni.

    Correggi in base alla colonna F=6
    è 0 deve essere NO NO NO
    è 1 deve essere YES YES YES ( a condizione che nella colonna E ci sia scritto CDC)
    è 1 deve essere YES YES NO (a condizione che nella colonna E ci sia scritto NO
    è 2 deve essere YES NO YES
    è 3 deve essere YES NO YES

  3. #13
    PaoloTalini non è in linea Scribacchino
    Luogo
    Pontedera (PI)
    Post
    862
    Quote Originariamente inviato da valetin Visualizza il messaggio
    Ciao Paolo, scusa per la latitanza di oggi, ma ero fuori ufficio,
    praticamente a me non mi corregge e fa vedere le celle BCD sul foglio script pcm, errori di debug non ci sono, ma semplicemente non montra i valori corretti come da condizioni.

    Correggi in base alla colonna F=6
    è 0 deve essere NO NO NO
    è 1 deve essere YES YES YES ( a condizione che nella colonna E ci sia scritto CDC)
    è 1 deve essere YES YES NO (a condizione che nella colonna E ci sia scritto NO
    è 2 deve essere YES NO YES
    è 3 deve essere YES NO YES
    Le informazioni e il codice che ti ho dato sono corrette.
    Le informazioni che hai dato non collimano con l'esempio che ai allegato.
    Ti ho scritto di fare attenzione ai nomi, infatti sono errati.
    Questo codice
    funziona.
    è stato testato sul tuo file
    esegue le modifiche/controlli richiesti.
    codice:
    Sub CopiaFor5()
        Dim ur As Long
        Dim idiR As Long
        Dim con As Long
        Dim riga As Long
        
        Dim cC As Long
        ur = Sheets("Settaggi").Range("A" & Rows.Count).End(xlUp).Row
        con = 7 'indice colonna G dove verificare la presenza di 'X'
        riga = 5
        For idiR = 5 To ur 'Step 2
            'Nel caso non volessi controllare tutti i righi puoi usare [Step incremento]
            'Facoltativa. Quantità di cui viene incrementato il contatore al compimento di ciascun ciclo.
            'Se non viene specificato,incremento assume per impostazione predefinita il valore 1.
            If UCase(Sheets("Settaggi").Cells(idiR, con)) = "X" Then
                'Sheets("Settaggi").Cells(idiR, 1).Copy Destination:=Sheets("PCM").Cells(riga, 1)
                'Nel caso non tiinteressi il formato puoi usare:
                Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 1)
                Sheets("PCM").Cells(riga, 2) = idiR 'scrive in colonna B il rigo dove ha trovato l'errore
                riga = riga + 1
                'Correggi in base alla colonna F=6
                'è 0 deve essere NO NO NO
                'è 1 deve essere YES YES YES ( a condizione che nella colonna E ci sia scritto CDC)
                'è 1 deve essere YES YES NO (a condizione che nella colonna E ci sia scritto NO
                'è 2 deve essere YES NO YES
                'è 3 deve essere YES NO YES
                'Se vuoi attivare il controllo
                'stop
                'Sheets("Settaggi").Cells(idiR, 6).Select
                Select Case Sheets("Settaggi").Cells(idiR, 6)
                    Case Is = 0
                        Sheets("Settaggi").Cells(idiR, 2) = "NO"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "NO"
                    Case Is = 1
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "YES"
                        Select Case Sheets("Settaggi").Cells(idiR, 5)
                            Case Is = "CDC"
                                Sheets("Settaggi").Cells(idiR, 4) = "YES"
                            Case Is = "NO"
                                Sheets("Settaggi").Cells(idiR, 4) = "NO"
                        End Select
                    Case Is = 2
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "YES"
                    Case Is = 3
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "YES"
                End Select
            End If
        Next
    End Sub
    Sono state aggiunte delle modifiche per non sovrascrivere i dati
    d'intestazione, e la scrittura del riferimento rigo errore nella colonna B della scheda PCM.
    P. Talini
    __________________________________________________ _______________________________________
    Tutti sanno che una cosa è impossibile da realizzare,
    finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

  4. #14
    L'avatar di valetin
    valetin non è in linea Novello
    Post
    11
    si, avevo modificato i nomi dei fogli, ma comunque li avevo rinominati come da formula precedente il file che ho inviato, probabilmente mi sono spiegato male io, nel foglio pcm, deve apparire la colonna A del foglio settaggi (che è ok), e anche le informazioni sulla colone b c d in relazione alle condizioni che ti ho inviato, cioè la macro dovrebbe, dove è necessario correggere quelle informazioni e farmele vedere, adesso io lanciando la macro vedo un numero, accanto alla voce corretta (cioè il numero di riga) (colonna A, foglio settaggi).

    Praticamente se nel foglio settaggi nella colonna G, c'è una x, la macro dovrebbe (come fa adesso) copiare la colonna A della stessa riga, nel foglio pmc, e allo stesso tempo dovrebbe correggere con le relazioni indicate e farle vedere le celle B C D usando come riferimento la colonna F.

    Cioè nel foglio pcm, relativo alle sole righe con la x (del foglio settaggi), deve essere così strutturato:
    Colonna A= la colonna A del foglio settaggi
    Colonna B= la colonna B (con la correzione utilizzando le relazioni indicate) del foglio settaggi
    Colonna C= la colonna C (con la correzione utilizzando le relazioni indicate) del foglio settaggi
    Colonna D= la colonna D (con la correzione utilizzando le relazioni indicate) del foglio settaggi

    Grazie ancora.
    Ultima modifica di valetin; 25-06-2015 21:52 

  5. #15
    PaoloTalini non è in linea Scribacchino
    Luogo
    Pontedera (PI)
    Post
    862
    valetin;
    La modifica è irrilevante rispetto ai metodi usati.
    Se hai capito il metodo puoi andare avanti con il codice e modificarlo secondo le tue necessità.

    Conosci il metodo
    Conosci il riferimento, rigo e colona, di dove leggere e dove scrivere i dati.

    Risolvi.
    Aspetto di vedere il tuo codice.
    Saluti.
    P. Talini
    __________________________________________________ _______________________________________
    Tutti sanno che una cosa è impossibile da realizzare,
    finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

  6. #16
    L'avatar di valetin
    valetin non è in linea Novello
    Post
    11
    ok, dai questo weekend mi ci metto e spero di risolverlo, grazie, spero di risolverlo!!!

  7. #17
    PaoloTalini non è in linea Scribacchino
    Luogo
    Pontedera (PI)
    Post
    862
    Quote Originariamente inviato da valetin Visualizza il messaggio
    ok, dai questo weekend mi ci metto e spero di risolverlo, grazie, spero di risolverlo!!!

    Fai attenzione.
    Il codice attuale fa le correzioni richieste.
    Scrive le correzioni nella scheda Settaggi.

    Il codice:
    codice:
    Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 1)
    scrive il contenuto della colonna 1 della scheda Settaggi nella colonna 1 della scheda PCM.
    Cambiando il numero di colonna hai il risultato desiderato.

    Se vuoi scrivere i dati, dopo, averli corretti inserisci il codice relativo alle singole colonne
    dopo la correzione altrimenti prima.

    Potrei scriverti il codice ma non ti aiuterebbe a capire il metodo.
    Ultima modifica di PaoloTalini; 25-06-2015 23:35 
    P. Talini
    __________________________________________________ _______________________________________
    Tutti sanno che una cosa è impossibile da realizzare,
    finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

  8. #18
    PaoloTalini non è in linea Scribacchino
    Luogo
    Pontedera (PI)
    Post
    862
    valetin;

    La soluzione applicabile al tuo caso:

    codice:
    Sub CopiaForABCD()
        '_______________'
        Dim ur As Long
        Dim idiR As Long
        Dim con As Long
        Dim riga As Long
        Dim cC As Long
        '_______________'
        ur = Sheets("Settaggi").Range("A" & Rows.Count).End(xlUp).Row
        con = 7 'indice colonna G dove verificare la presenza di 'X'
        riga = 5
        For idiR = 5 To ur
            If UCase(Sheets("Settaggi").Cells(idiR, con)) = "X" Then
                Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 1)
                
                riga = riga + 1
                'Correggi in base alla colonna F=6
                'è 0 deve essere NO NO NO
                'è 1 deve essere YES YES YES ( a condizione che nella colonna E ci sia scritto CDC)
                'è 1 deve essere YES YES NO (a condizione che nella colonna E ci sia scritto NO
                'è 2 deve essere YES NO YES
                'è 3 deve essere YES NO YES
                Select Case Sheets("Settaggi").Cells(idiR, 6)
                    Case Is = 0
                        Sheets("Settaggi").Cells(idiR, 2) = "NO"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "NO"
                    Case Is = 1
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "YES"
                        Select Case Sheets("Settaggi").Cells(idiR, 5)
                            Case Is = "CDC"
                                Sheets("Settaggi").Cells(idiR, 4) = "YES"
                            Case Is = "NO"
                                Sheets("Settaggi").Cells(idiR, 4) = "NO"
                        End Select
                    Case Is = 2
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "YES"
                    Case Is = 3
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "YES"
                End Select
                'Colonna A= la colonna A del foglio settaggi
                'Colonna B= la colonna B (con la correzione utilizzando le relazioni indicate) del foglio settaggi
                'Colonna C= la colonna C (con la correzione utilizzando le relazioni indicate) del foglio settaggi
                'Colonna D= la colonna D (con la correzione utilizzando le relazioni indicate) del foglio settaggi
                Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 1)
                Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 2)
                Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 3)
                Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 4)
            End If
        Next
    End Sub

    Il codice funziona. Dovrai prevedere l'azzeramento o l'accodamento dei dati della scheda "Settaggi" per
    avere a disposizione dati omogenei.

    Eseguendo il codice senza azzerare o accodare i dati potresti sovrascrivere o mantenere parte
    dei dati precedentemente elaborati.
    P. Talini
    __________________________________________________ _______________________________________
    Tutti sanno che una cosa è impossibile da realizzare,
    finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

  9. #19
    L'avatar di valetin
    valetin non è in linea Novello
    Post
    11
    Ciao Paolo buongiorno,
    scusa se ti rispondo solo ora, ma la mattinata è stata infernale... questo weekend ho provato e riprovato ma a dire la verità non sono riuscito a fare andare il codice, quello che hai inviato tu questa mattina, a me non funziona, o meglio rispetto all'altro mi appare infondo alla lista dei risultati pcm, un "YES", invece di far apparire accanto ad ogni riga i valori corretti come richiesto.

  10. #20
    PaoloTalini non è in linea Scribacchino
    Luogo
    Pontedera (PI)
    Post
    862
    Quote Originariamente inviato da valetin Visualizza il messaggio
    Ciao Paolo buongiorno,
    scusa se ti rispondo solo ora, ma la mattinata è stata infernale... questo weekend ho provato e riprovato ma a dire la verità non sono riuscito a fare andare il codice, quello che hai inviato tu questa mattina, a me non funziona, o meglio rispetto all'altro mi appare infondo alla lista dei risultati pcm, un "YES", invece di far apparire accanto ad ogni riga i valori corretti come richiesto.

    codice:
    Sub CopiaForABCD()
        '_______________'
        Dim ur As Long
        Dim idiR As Long
        Dim con As Long
        Dim riga As Long
        Dim cC As Long
        '_______________'
        ur = Sheets("Settaggi").Range("A" & Rows.Count).End(xlUp).Row
        con = 7 'indice colonna G dove verificare la presenza di 'X'
        riga = 5
        For idiR = 5 To ur
            If UCase(Sheets("Settaggi").Cells(idiR, con)) = "X" Then
                Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 1)
                
                riga = riga + 1
                'Correggi in base alla colonna F=6
                'è 0 deve essere NO NO NO
                'è 1 deve essere YES YES YES ( a condizione che nella colonna E ci sia scritto CDC)
                'è 1 deve essere YES YES NO (a condizione che nella colonna E ci sia scritto NO
                'è 2 deve essere YES NO YES
                'è 3 deve essere YES NO YES
                Select Case Sheets("Settaggi").Cells(idiR, 6)
                    Case Is = 0
                        Sheets("Settaggi").Cells(idiR, 2) = "NO"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "NO"
                    Case Is = 1
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "YES"
                        Select Case Sheets("Settaggi").Cells(idiR, 5)
                            Case Is = "CDC"
                                Sheets("Settaggi").Cells(idiR, 4) = "YES"
                            Case Is = "NO"
                                Sheets("Settaggi").Cells(idiR, 4) = "NO"
                        End Select
                    Case Is = 2
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "YES"
                    Case Is = 3
                        Sheets("Settaggi").Cells(idiR, 2) = "YES"
                        Sheets("Settaggi").Cells(idiR, 3) = "NO"
                        Sheets("Settaggi").Cells(idiR, 4) = "YES"
                End Select
                'Colonna A= la colonna A del foglio settaggi
                'Colonna B= la colonna B (con la correzione utilizzando le relazioni indicate) del foglio settaggi
                'Colonna C= la colonna C (con la correzione utilizzando le relazioni indicate) del foglio settaggi
                'Colonna D= la colonna D (con la correzione utilizzando le relazioni indicate) del foglio settaggi
                Sheets("PCM").Cells(riga, 1) = Sheets("Settaggi").Cells(idiR, 1)
                Sheets("PCM").Cells(riga, 2) = Sheets("Settaggi").Cells(idiR, 2)
                Sheets("PCM").Cells(riga, 3) = Sheets("Settaggi").Cells(idiR, 3)
                Sheets("PCM").Cells(riga, 4) = Sheets("Settaggi").Cells(idiR, 4)
            End If
        Next
    End Sub
    Indice colonna errato.
    P. Talini
    __________________________________________________ _______________________________________
    Tutti sanno che una cosa è impossibile da realizzare,
    finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

+ Rispondi al Thread
Pagina 2 di 3 primaprima 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