Lettura di celle e concatenamento



  • Lettura di celle e concatenamento
    di Hellboy (utente non iscritto) data: 07/11/2015 14:07:31

    Rieccomi ragazzi.
    In VBA , dovrei leggere l'intero rigo di un foglio excel. E' fattibile ?

    Di volta in volta , aumentando un contatore per la riga, dovrei leggere l'intero rigo fino alla fine della colonna.
    Es:
    A B B
    1 3 5 6
    2 4 5 7
    3 4 5 8
    4 4 5 9

    Dovrei riuscire a leggere le righe:
    356
    457
    458
    459. Possibile ?



  • di Mister_x (utente non iscritto) data: 07/11/2015 15:24:13

    ciao

    tutto e' possibile, per il caffe' con la moka ci stiamo attrezzando

    allega un file di cosa vuoi fare e cosa vuoi ottenere con la lettura

    ciao





  • di Hellboy (utente non iscritto) data: 07/11/2015 19:44:32

    Ciao Mister_X
    manca il file :) :)

    ricordati che ho l'excel 2007 :) :)



  • di Mister_x (utente non iscritto) data: 07/11/2015 22:11:45

    ciao

    il file con dei dati , non lo dobbiamo postare noi, ma bensi devi preparare un tuo file con dei dati inseriti e cosa vuoi ottenere da questi ,e in che cella del foglio
    fatto questo inserirlo nella discussione

    ciao





  • di Hellboy (utente non iscritto) data: 09/11/2015 12:16:48


    Ho questi cicli per la mia verifica
    For y = 1 To RigoVerticaleMax
    For X = 1 To RigoOrizzontaleMax
    If Foglio2.Cells(y, X) <> "" Then
    msgbox "Valore della cella rigo="&y&" colonna="&x &" = "&Foglio2.Cells(y, X)
    End If
    Next X
    Next y


    RigoOrizzontaleMax=Correi capire come poter sostiruire RigoOrizzontaleMax, che assume il valore della numero massimo di colonne. Il problema è che se ho un rigo con 1 sola colonna, il programma cmq mi verifica fino a RigoOrizzontaleMax. Vorrei capire ser c'è la possibilità di contare, rigo per rigo, il n°massimo di colonne.


    E per ogni rigo, verificare nelle diverse celle, se esiste un valore. Fino ad ora eseguivo un ciclo dove verificavo cella per cella, volevo sapere es invece esiste un comando excel che mi snellisca la cosa.


    Grazie.




  • di isy data: 09/11/2015 12:30:11

    Ciao

    Cit: Vorrei capire ser c'è la possibilità di contare, rigo per rigo, il n°massimo di colonne.

    Si è possibile, allega quando puoi un file d'esempio :)



  • di Raffaele_53 data: 09/11/2015 13:07:34

    >>>For y = 1 To RigoVerticaleMax
    Non capisco, se desideri solo il resoconto dei dati nella stessa riga.
     
    Sub a()
    Dim Ur, X, Y, Ms As String
    Ur = Range("A" & Rows.Count).End(xlUp).Row
    For X = 1 To Ur
        For Y = 1 To Cells(X, Columns.Count).End(xlToLeft).Column
            Ms = Ms & " " & Cells(X, Y)
        Next Y
        MsgBox Ms
        Ms = ""
    Next X
    End Sub
    



  • di hellboy (utente non iscritto) data: 09/11/2015 13:39:02

    Ok, grazie ragazzi e grazie RAFFAELE
    Cells(X, Columns.Count).End(xlToLeft).Column

    questo è quello che stavo cercando, per eviater di fare dei confronti. Cosi facendo evito di leggere le celle vuote.

    Ora mi servirebbe capire se c'è la possibilità di esaminare un'intero rigo (composto da X celle) e verificare se all'interno di qualche cella
    c'è un determinato valore "G" "T" "Z".
    Devo esaminare le celle una alla volta o esiste un comando per verificare questa cosa senza eseguire cicli ?

    Grazie dell'attenzione a tutti.



  • di Raffaele_53 data: 09/11/2015 13:57:15

    Allora non ti serve il ciclo Y
    Basterebbe fare per ogni ciclo X 3 domande:
    Esiste il valore "G" "T" "Z"
     
    Sub a()
    Dim Ur, X, Y, R, Ms As String, rigaA As Object
    Ur = Range("A" & Rows.Count).End(xlUp).Row
    For X = 1 To Ur
        Set rigaA = Rows(X & ":" & X).Find("G", LookIn:=xlValues, LookAt:=xlWhole)
        If rigaA Is Nothing Then
            MsgBox "nessuna corrispondenza"
        Else
            R = rigaA.Columns
            MsgBox "esiste"
        End If
        Set rigaA = Rows(X & ":" & X).Find("T", LookIn:=xlValues, LookAt:=xlWhole)
        If rigaA Is Nothing Then
            MsgBox "nessuna corrispondenza"
        Else
            R = rigaA.Columns
            MsgBox "esiste"
        End If
        Set rigaA = Rows(X & ":" & X).Find("Z", LookIn:=xlValues, LookAt:=xlWhole)
        If rigaA Is Nothing Then
            MsgBox "nessuna corrispondenza"
        Else
            R = rigaA.Columns
            MsgBox "esiste"
        End If
    Next X
    End Sub



  • di Cucù data: 09/11/2015 14:43:48

    cit"Basterebbe fare per ogni ciclo X 3 domande:
    Esiste il valore "G" "T" "Z""

    oppure usare l'operatore "Like"



  • di Raffaele_53 data: 10/11/2015 20:03:32

    Ciao a tutti & Cucù
    Che io sappia "Like" è un'espressione per cercare dati similari
    Ex Vita
    EX Vitale
    EX navitalia

    .....Find(Like "Vita*".....Find(Like "vita*" .....(se NON inserito il Option compare text)

    *, ovunque. Però ci saranno molte parole che avranno una G/T/Z inserita.

    Ps. Se fosse posibile un "UNICO" Find("G",....), Or Find("T",....), Or Find("Z",....), sarebbe meglio.
    Comunque mi piacerebbe conoscerlo se esiste?



  • di Hellboy (utente non iscritto) data: 11/11/2015 07:50:56

    Grazie, nel mio caso specifico, non essendo un testo, ma una serie di comandi, questi ultimi avranno un solo X, Y o Z.
    Quindi nel mio caso, l'operatore LIKE funziona benessimo.


    Grazie ragazzi.
    Magnifici come sempre :) :)
    A presto.



  • di Cucù data: 11/11/2015 08:40:29

    cit"Che io sappia "Like" è un'espressione per cercare dati similari "

    In effetti avevo capito che era questo che interessava al nostro amico, ma evidentemente ho frainteso la sua richiesta.
    Cucù