Ik heb een code die een bestand van 50k regels anders indeelt en alleen de kolommen er uithaalt die door de gebruiker opgegeven zijn.
Nu staat in dat bestand een cel met een formule, wat eigenlijk geen formule hoort te zijn. In de cel staat "=-I12" wat hoort te zijn "-I12". De tekst die in de cel staat is een huisnummertoevoeging en heeft dus niets te maken met cel I12. Het streepje moet er dus voor staan.
Uit de hele lap code die ik heb gaat het om dit stuk:
In deze code plak ik eerst de koppen in de eerste rij, daarna volgt de data. De data kan bestaan uit enkele cellen, maar ook meerdere cellen die samengevoegd moeten worden, dan wel cellen die met losse strings samengevoegd worden, vandaar de vele ifs. Ben nog aan het proberen, dus heb de code nog niet netjes gemaakt, dat komt later.
Het loopt steeds spaak NA:
Hij komt hier steeds doorheen, maar daarna loopt hij vast met het overnemen van de waarde. Ik heb hier een controle met iserror geprobeerd, gekeken of er een =-teken in staat en gecontroleerd of het een formule (.hasformula) is.
Ik zie het even niet...jullie?
Wat ik uit de cel nodig heb is de inhoud zonder het =-teken, wat mij betreft mag de - ook weg...
Alvast bedankt.
Nu staat in dat bestand een cel met een formule, wat eigenlijk geen formule hoort te zijn. In de cel staat "=-I12" wat hoort te zijn "-I12". De tekst die in de cel staat is een huisnummertoevoeging en heeft dus niets te maken met cel I12. Het streepje moet er dus voor staan.
Uit de hele lap code die ik heb gaat het om dit stuk:
Code:
Dim oData As String
For oHead = 1 To 16
ThisWorkbook.Sheets("OBJECT").Cells(1, oHead).Value = ThisWorkbook.Sheets("data").Cells(oHead, 6).Value
Next oHead
For oDataR = 1 To ThisWorkbook.Sheets("data").Range("H1").Value
For oDataC = 1 To 16
If InStr(1, ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value, "|", 0) > 0 Then
Dim oDataArray() As String
oDataArray = Split(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value, "|")
'ThisWorkbook.Sheets("COMPLEX").Cells(cDataR + 1, cDataC).Value = objWS.Cells(cDataR + 1, 1).Value
For od = LBound(oDataArray) To UBound(oDataArray)
If InStr(1, oDataArray(od), Chr(34), 0) > 0 Then
oData = oData & Mid(oDataArray(od), 2, Len(oDataArray(od)) - 2)
ElseIf IsNumeric(oDataArray(od)) = True Then
oData = oData & objWS.Cells(oDataR + 1, CInt(oDataArray(od))).Value
End If
Next od
ElseIf InStr(1, ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value, Chr(34), 0) > 0 Then
oData = Mid(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value, 2, Len(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value) - 2)
ElseIf InStr(1, ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value, "=", 0) > 0 Then
oData = Right(objWS.Cells(oDataR + 1, CInt(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value)).Value, Len(objWS.Cells(oDataR + 1, CInt(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value)).Value) - 1)
ElseIf IsNumeric(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value) = True Then
On Error GoTo melding
If IsError(objWS.Cells(oDataR + 1, CInt(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value))) = True Then
oData = Right(objWS.Cells(oDataR + 1, CInt(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value)).Value, Len(objWS.Cells(oDataR + 1, CInt(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value)).Value) - 1)
Else
oData = objWS.Cells(oDataR + 1, CInt(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value)).Value
End If
Else
oData = ""
End If
ThisWorkbook.Sheets("OBJECT").Cells(oDataR + 1, oDataC).Value = oData
Next oDataC
Next oDataR
melding:
MsgBox "R: " & oDataR + 1 & " - C: " & Chr(oDataC + 64)
Het loopt steeds spaak NA:
Code:
ElseIf IsNumeric(ThisWorkbook.Sheets("data").Cells(oDataC, 7).Value) = True Then
Ik zie het even niet...jullie?
Wat ik uit de cel nodig heb is de inhoud zonder het =-teken, wat mij betreft mag de - ook weg...
Alvast bedankt.