• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

twee keer csv-data met ander formaat

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
865
Beste,

Ik kopieer uit een csv-bestand data naar een excel-bestand en tabblad stock
Ik doe hetzelfde uit een tweede csv-bestand naar hetzelfde excel-bestand en tabblad stock2

Via een macro voeg ik de data van tabblad stock2 onderaan toe aan de data van tabblad stock.

Code:
    jv = Sheets("stock2").Cells(1, 1).CurrentRegion.Offset(1)
    Sheets("stock").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(jv), UBound(jv, 2)) = jv

Nu blijkt dat door dit kopiëren (?) de geplakte data een formaat 'getal' hebben en de andere een formaat 'tekst'.

zie bestand in bijlage.

Gevolg hiervan is dat mijn formule nu in de fout gaat.

=VERT.ZOEKEN(TEKST(A946;"@");masterdata!A:B;2;ONWAAR)

maar met onderstaande formule dan weer wel correct werkt voor 'getallen'

=VERT.ZOEKEN(A947;masterdata!A:B;2;ONWAAR)

Ik zou natuurlijk kunnen de formule uitbreiden met als 1 en als 2 en als 3 maar misschien weten jullie raad ...

dank alvast

Kan ik dit opvangen? Weet iemand raad om de geplakte data ook als tekst te 'plakken'?
 

Bijlagen

Ik zie geen tabblad Stock2, en dus ook die data niet. Ik zie in kolom D op je tabblad Stock wél formules die als tekst zijn ingevoerd: '=VERT.ZOEKEN(A947;masterdata!A:B;2;ONWAAR) Daarnaast doen je macro's het niet, omdat de bestanden er niet bij zitten.
 
Klopt dat je het tabblad niet ziet, de data zijn via die macro reeds onderaan bijgeplakt. Ik had dit reeds gedaan:

Gele data in kolom A zijn de nieuwe, de grijze in kolom A zijn de bestaande.
 
Maar als je een probleem hebt met de import, lijkt het mij wel zo handig als die importbestanden erbij zitten. Hier kunnen we niet zoveel mee.
 
Vervang die code dan door dit:

Code:
Sheets("stock2").Cells(1, 1).CurrentRegion.Offset(1).Copy Sheets("stock").Cells(Rows.Count, 1).End(xlUp).Offset(1)
 
Octa, ik snap het. Maar ik importeer vanaf c:\data\tool\ enz. Om het jullie niet moeilijk te maken heb ik deze stap reeds uitgevoerd. Nu is er dus een tabblad stock en stock2 met de originele geïmporteerde gegevens.

In beide tabbladen zijn de data in kolom A tekst

Na uitvoeren van onderstaande macro staan de gegevens samen op sheet stock. En daar zie je het verschil in kolom A: tekst <> getal.

Code:
Sub overzetten()

'voor het uitvoeren van de macro zijn de kolommen A in stock en stock2 tekst (=als(istekst(cel);"tekst";"getal")
'na uitvoeren van deze macro worden de onderste, bijgeplakte waarden in kolom A van stock een getal.

    jv = Sheets("stock2").Cells(1, 1).CurrentRegion.Offset(1)
    Sheets("stock").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(jv), UBound(jv, 2)) = jv
    
    
'check of data in kolom A tekst of getal is.

    Range("K881").Select
    ActiveCell.FormulaR1C1 = "=IF(ISTEXT(RC[-10]),""tekst"",""getal"")"
    Selection.Copy
    Range("K882").Select
    ActiveSheet.Paste
    Range("K881").Select
End Sub
 

Bijlagen

Waarom gebruik je niet de importeerwizrd voor tekstbestanden uit het tabblad 'Data' ?
 
Ja daar hebben we zo iets :(

Het bestand is een csv-bestand met uitgang .xls

Als ik importeer via gegevens ophalen - uit bestand - uit werkmap dan krijg ik een foutmelding:
Kan geen verbinding maken. Er is een fout opgetreden tijdens het verbinden. Details: De externe tabel heeft niet de verwachte indeling

Dan probeer ik het importeren via gegevens ophalen - uit bestand - uit werkmap - uit tekst/csv. Dezelfde foutmelding verschijnt.

En zo kom ik tot allerlei ingrepen die de zaak bemoeilijken natuurlijk.

sorry.
 
Dan moet je eerst het bestand hernoemen met de juiste extensie voordat je het importeert. Dat kan met Name denk ik wel.
 
Hoi Octa,

Dan gaat het pas helemaal fout. Wellicht is het bestand een 'soort' csv. Ik krijg er gewoon geen correcte data uit. :evil:

Wat ik wel gedaan heb is onderstaand:

Code:
   With Sheets("stock").Range("A2", "A1000")
        .NumberFormat = "General"
        .Value = .Value
    End With

en die code zet dan alle gegevens in kolom A om naar een getal.
 
Heb je weer zo'n programmeur die geen idee had waar hij mee bezig was. Een CSV bestand als xls opslaan, hoe stom kan je zijn. Uit welk systeem komt dit?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan