import csv -- conditionat de nume regasit in coloana
- cristi_lazarro
- Mesaje: 841
- Membru din: Mie Noi 04, 2009 5:57 pm
Re: import csv -- conditionat de nume regasit in coloana
ms
inca nu am facut acea modificare, mai sunt "legat" putin intr-o alta parte a aceluiasi "proiect"
..revin..
inca nu am facut acea modificare, mai sunt "legat" putin intr-o alta parte a aceluiasi "proiect"
..revin..
-
- Moderator
- Mesaje: 4570
- Membru din: Vin Iul 31, 2009 7:32 am
Re: import csv -- conditionat de nume regasit in coloana
Si ca sa fie mai "detaliat"... ... o idee ar fi urmatoarea (ca sa nu modifici functia de import foarte mult): Poti "impacheta" zona de "'Scriere a continutului in foaia destinatie" intr-un IF care apeleaza o functie de "verificare a conditiilor tale"...
Mai exact in loc de bucata asta de cod din functie
vei avea:
Acum doar trebuie sa "inventezi functia ta My_Filter_Function care sa intoarca TRUE daca se indeplineste conditia sau FALSE in caz contrar...
O astfel de functie ar putea fi urmatoarea (folosind sugestia lui smcsa cu functia InStr):
Astfel daca se va fasi valoarea BST in sirul trimis (toata linia de importat) functia va intoarce TRUE si astfel randul se va importa.
Daca in schimb vrei sa faci verificarea pe o anumita coloana in loc sa trimiti tot sirul ca paramentru (cReadLine), poti trimite doar coloana care te intereseaza arrContent(nCol) unde nCol este coloana care te intereseaza...
Bafta!...
Mai exact in loc de bucata asta de cod din functie
Cod: Selectaţi tot
'Scrie continutul in foaia destinatie
For ColIdx = 0 To nCols
ThisWorkbook.Worksheets(cWSDst).Cells(RowIdx, ColIdx + 1).Value = arrContent(ColIdx)
Next ColIdx
Cod: Selectaţi tot
If My_Filter_Function(cReadLine) = True Then
'Scrie continutul in foaia destinatie
For ColIdx = 0 To nCols
ThisWorkbook.Worksheets(cWSDst).Cells(RowIdx, ColIdx + 1).Value = arrContent(ColIdx)
Next ColIdx
End If
O astfel de functie ar putea fi urmatoarea (folosind sugestia lui smcsa cu functia InStr):
Cod: Selectaţi tot
Function My_Filter_Function(cText)
Dim nResult As Long
lnResult = InStr(1, cText, "BST")
If lnResult > 0 Then
My_Filter_Function = True
Else
My_Filter_Function = True
End If
End Function
Daca in schimb vrei sa faci verificarea pe o anumita coloana in loc sa trimiti tot sirul ca paramentru (cReadLine), poti trimite doar coloana care te intereseaza arrContent(nCol) unde nCol este coloana care te intereseaza...
Bafta!...
Re: import csv -- conditionat de nume regasit in coloana
Cred ca ar trebui sa testeze doar pe prima coloana, nu pe toata linia, pentru ca RO are si pe coloana 3lucian scrie: Astfel daca se va fasi valoarea BST in sirul trimis (toata linia de importat) functia va intoarce TRUE si astfel randul se va importa.
Daca in schimb vrei sa faci verificarea pe o anumita coloana in loc sa trimiti tot sirul ca paramentru (cReadLine), poti trimite doar coloana care te intereseaza arrContent(nCol) unde nCol este coloana care te intereseaza...
Bafta!...