Usuário com melhor resposta
remover dados das celulas DataGrid

Pergunta
-
Tenho um DataGridView e 2 campos. Nome e Endereço. Importo os dados de uma planilha do excel.
Em algumas planilhas que importo do excel para o DGV, estão o Nome e o Endereço do fulano em uma única célula, gostaria de remover e colocar o nome da rua na célula correta ou seja na célula Endereço.
Alguem poderia me ajudar.
Muito obrigada
Respostas
-
Faça Duas coisas!
1 - no Load do Formulário ou na Propriedadades do Grid deixe assim
DataGridView1.AllowUserToAddRows = False
2 - Sua rotina faltou um not antes do IsNothing
Ou seja não nullo então entra no if
Rotina correta
For i As Integer = 0 To DataGridView1.Rows.Count - 1 Dim strRua As String = String.Empty If Not IsNothing(DataGridView1.Rows(i).Cells(0).Value) Then Dim strNome As String = DataGridView1.Rows(i).Cells(0).Value 'Buscando a Posição pela palavra Rua Dim posRua As Integer = IIf(Not IsNothing(strNome), strNome.IndexOf("Rua"), -1) If (posRua > -1) Then 'Encontrar a posição da Palavra Rua ... strRua = strNome.Substring(posRua) 'Nome da Rua strNome = strNome.Remove(posRua) 'Nome DataGridView1.Rows(i).Cells(0).Value = strNome DataGridView1.Rows(i).Cells(1).Value = strRua End If End If Next
OK!
- Sugerido como Resposta Fulvio Cezar Canducci Dias domingo, 5 de janeiro de 2014 22:19
- Marcado como Resposta Giovani Cr terça-feira, 14 de janeiro de 2014 13:14
-
Obrigada fúlvio, você tem uma facilidade para resolver esses problemas.
mas tenho 2 dúvidas
1-Porque no Load do formulario eu tenho que deixar DataGridView1.AllowUserToAddRows=False DataGridView1.AllowUserToAddRows = False O que significa isso.
2-O que significa literalmente o Not isNothig, fiz um curso basico de vb.net mas não ensinaram sobre esse not isNothing, quando eu posso usa-lo??
1 - Aquela propriedade marcada com False não deixa o Grid adicionar Linhas automáticamente eleminando algo que você no momento não precisa!
Essa linha ele vai tirar aonde tem asterisco!
2 -
Not (Operador Lógico de negativa de Expressão)
Dim i As Integer = 30 If (i = 30) Then 'verdade entra no if i = 50 ' entra aqui Else i = 30 End If 'iniciando de novo para i = 30 i = 30 If Not (i = 30) Then 'inverte o valor de True para False e não entra no IF e sim no Else i = 50 Else i = 10 'entra aqui End If
Leitura recomendada: http://www.macoratti.net/vbn_nol1.htm
- IsNothing (Função que verifica se o objeto está nullo e retornar True ou False) tipo: é nulo (nothing)
Se for True é nulo e False tem valor !!!
Leitura recomendada: http://msdn.microsoft.com/en-us/library/5adx7fxz(v=vs.90).aspx
- Marcado como Resposta Giovani Cr terça-feira, 14 de janeiro de 2014 13:14
Todas as Respostas
-
Dim strNome As String = "Pedro de GomesRua Ulisses Cruz" Dim strRua As String = String.Empty 'Buscando a Posição pela palavra Rua Dim posRua As Integer = strNome.IndexOf("Rua") If (posRua > -1) Then 'Ennctrou a posição da Palavra Rua ... strRua = strNome.Substring(posRua) strNome = strNome.Remove(posRua) End If
- Sugerido como Resposta Fulvio Cezar Canducci Dias sábado, 4 de janeiro de 2014 19:02
-
Entendi seu código, é para TextBox não é??
Tentei adaptar para o DataGridView mas não consegui, eu gostaria de fazer isso dentro do DataGridView,
tipo buscar a posição pela palavra Rua dentro do DGV, encotrar e passar tudo o o que estiver a direita dentro da célula para a outra célula do DGV.
Esta assim
Deveria ficar assim
-
-
Tentei fazer assim, para percorrer todas as linhas da coluna 0 e verificar se existe a palavra "Rua" e depois mudar de uma célula para outra
For i As Integer = 0 To DataGridView1.Rows.Count - 1 Dim strRua As String = String.Empty Dim strNome As String = DataGridView1.Rows(i).Cells(0).Value 'Buscando a Posição pela palavra Rua Dim posRua As Integer = strNome.IndexOf("Rua") If (posRua > -1) Then 'Encontrar a posição da Palavra Rua ... strRua = strNome.Substring(posRua) 'Nome da Rua strNome = strNome.Remove(posRua) 'Nome End If DataGridView1.Rows(i).Cells(0).Value() = strNome DataGridView1.Rows(i).Cells(1).Value() = strRua Next
Não funcionou
-
Tentei fazer assim, para percorrer todas as linhas da coluna 0 e verificar se existe a palavra "Rua" e depois mudar de uma célula para outra
For i As Integer = 0 To DataGridView1.Rows.Count - 1 Dim strRua As String = String.Empty Dim strNome As String = DataGridView1.Rows(i).Cells(0).Value 'Buscando a Posição pela palavra Rua Dim posRua As Integer = strNome.IndexOf("Rua") If (posRua > -1) Then 'Encontrar a posição da Palavra Rua ... strRua = strNome.Substring(posRua) 'Nome da Rua strNome = strNome.Remove(posRua) 'Nome End If DataGridView1.Rows(i).Cells(0).Value() = strNome DataGridView1.Rows(i).Cells(1).Value() = strRua Next
Não funcionou
Deixe Assim as duas ultimas linhas
DataGridView1.Rows(i).Cells(0).Value = strNome DataGridView1.Rows(i).Cells(1).Value = strRua
Outra coisa também, pegue mania de fazer BreakPoint porque se poderia parar nessas linhas e verificar se houve a divisão entendeu! são dicas legais que to te passando!
- Sugerido como Resposta Fulvio Cezar Canducci Dias domingo, 5 de janeiro de 2014 01:39
- Editado Fulvio Cezar Canducci Dias domingo, 5 de janeiro de 2014 01:43
-
-
-
Assim?
For i As Integer = 0 To DataGridView1.Rows.Count - 1 Dim strRua As String = String.Empty If IsNothing(DataGridView1.Rows(i).Cells(0).Value) Then Dim strNome As String = DataGridView1.Rows(i).Cells(0).Value 'Buscando a Posição pela palavra Rua Dim posRua As Integer = strNome.IndexOf("Rua") If (posRua > -1) Then 'Encontrar a posição da Palavra Rua ... strRua = strNome.Substring(posRua) 'Nome da Rua strNome = strNome.Remove(posRua) 'Nome End If DataGridView1.Rows(i).Cells(0).Value = strNome DataGridView1.Rows(i).Cells(1).Value = strRua End If Next
Deu o mesmo erro
-
Faça Duas coisas!
1 - no Load do Formulário ou na Propriedadades do Grid deixe assim
DataGridView1.AllowUserToAddRows = False
2 - Sua rotina faltou um not antes do IsNothing
Ou seja não nullo então entra no if
Rotina correta
For i As Integer = 0 To DataGridView1.Rows.Count - 1 Dim strRua As String = String.Empty If Not IsNothing(DataGridView1.Rows(i).Cells(0).Value) Then Dim strNome As String = DataGridView1.Rows(i).Cells(0).Value 'Buscando a Posição pela palavra Rua Dim posRua As Integer = IIf(Not IsNothing(strNome), strNome.IndexOf("Rua"), -1) If (posRua > -1) Then 'Encontrar a posição da Palavra Rua ... strRua = strNome.Substring(posRua) 'Nome da Rua strNome = strNome.Remove(posRua) 'Nome DataGridView1.Rows(i).Cells(0).Value = strNome DataGridView1.Rows(i).Cells(1).Value = strRua End If End If Next
OK!
- Sugerido como Resposta Fulvio Cezar Canducci Dias domingo, 5 de janeiro de 2014 22:19
- Marcado como Resposta Giovani Cr terça-feira, 14 de janeiro de 2014 13:14
-
Obrigada fúlvio, você tem uma facilidade para resolver esses problemas.
mas tenho 2 dúvidas
1-Porque no Load do formulario eu tenho que deixar DataGridView1.AllowUserToAddRows=False DataGridView1.AllowUserToAddRows = False O que significa isso.
2-O que significa literalmente o Not isNothig, fiz um curso basico de vb.net mas não ensinaram sobre esse not isNothing, quando eu posso usa-lo??
-
Obrigada fúlvio, você tem uma facilidade para resolver esses problemas.
mas tenho 2 dúvidas
1-Porque no Load do formulario eu tenho que deixar DataGridView1.AllowUserToAddRows=False DataGridView1.AllowUserToAddRows = False O que significa isso.
2-O que significa literalmente o Not isNothig, fiz um curso basico de vb.net mas não ensinaram sobre esse not isNothing, quando eu posso usa-lo??
1 - Aquela propriedade marcada com False não deixa o Grid adicionar Linhas automáticamente eleminando algo que você no momento não precisa!
Essa linha ele vai tirar aonde tem asterisco!
2 -
Not (Operador Lógico de negativa de Expressão)
Dim i As Integer = 30 If (i = 30) Then 'verdade entra no if i = 50 ' entra aqui Else i = 30 End If 'iniciando de novo para i = 30 i = 30 If Not (i = 30) Then 'inverte o valor de True para False e não entra no IF e sim no Else i = 50 Else i = 10 'entra aqui End If
Leitura recomendada: http://www.macoratti.net/vbn_nol1.htm
- IsNothing (Função que verifica se o objeto está nullo e retornar True ou False) tipo: é nulo (nothing)
Se for True é nulo e False tem valor !!!
Leitura recomendada: http://msdn.microsoft.com/en-us/library/5adx7fxz(v=vs.90).aspx
- Marcado como Resposta Giovani Cr terça-feira, 14 de janeiro de 2014 13:14