Lettura di celle e concatenamento
Hai un problema con Excel? 
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ù
Vuoi Approfondire?