Data omzetten naar format & komma > punt

Status
Niet open voor verdere reacties.

Colonel

Gebruiker
Lid geworden
24 apr 2013
Berichten
12
Goedemiddag,

Ik ben nu al enige tijd aan het stoeien met het bijgevoegde bestand.

De onderstaande handelingen probeer ik uit te voeren in tabblad 'Blad1':
  1. Grootboek veranderen naar format "G=000000"
  2. Omschrijving te beperken tot maximaal 40 tekens
  3. De komma in het bedrag te veranderen naar een punt

Rekening houdend met het feit dat de output qua cel eigenschap altijd 'standaard' moet zijn en de gegevens worden gekopieerd naar tabblad 'Blad2'.

Wie zou mij hiermee kunnen helpen? Ik heb duidelijk niet veel kaas gegeten van VBA (dat bleek wel naar mijn zoektocht om de komma naar een punt te veranderen), maar probeer waar mogelijk is het toe te passen.
 

Bijlagen

  • INLEZEN.xlsm
    14,4 KB · Weergaven: 35
En wat is het doel van die komma naar een punt?
Je kan het getal * 100 doen en dan weergeven zonder decimalen.
 
Importeren naar een boekhoudprogramma wat gebruik maakt van punten i.p.v. komma's.
 
Een punt als decimaalscheiding?
Moeten de andere punten die er nu in staan eruit dan?
Geef eens een voorbeeld van wat je in blad2 verwacht in je voorbeeld document.
 
Laatst bewerkt:
De celeigenschappen van kolom C gaan met onderstaande code wel op tekst.

Code:
Sub Komma_Punt()
Dim sv, i As Long
sv = Sheets("blad1").Range("A1", Sheets("blad1").Cells(Rows.Count, 3).End(xlUp))
With Sheets("blad2")
Sheets("blad1").Range("a1", Sheets("blad1").Cells(Rows.Count, 3).End(xlUp).Offset(, -2).Resize(, 3)).Copy .Cells(1)
   For i = 2 To UBound(sv)
      sv(i, 1) = "G" & sv(i, 1)
      sv(i, 2) = Mid(sv(i, 2), 1, 40)
      sv(i, 3) = Replace(sv(i, 3), ",", ".")
    Next i
       .Cells(1, 3).Resize(UBound(sv)).NumberFormat = "@"
       .Cells(1, 1).Resize(UBound(sv), 3) = sv
       .Columns.AutoFit
 End With
End Sub

Anders moet je...
Code:
with application
  .decimalseparator = "."
  .thousendseparator = ","
  .usesystemseparators = false
end with

..gebruiken, en bij het sluiten van het bestand alles weer omdraaien.
 
Dus wat ik wil weten windows versie office versie ...

Nu kan je al eens kijken naar configuratiescherm en dan landinstellingen om zo uw regiosetting in te stellen en mogelijks is dan het probleem al opgelost.
 
De code daarvoor staat een bericht eerder. ;)
 
Een punt als decimaalscheiding?
Moeten de andere punten die er nu in staan eruit dan?
Geef eens een voorbeeld van wat je in blad2 verwacht in je voorbeeld document.

In de bijlage heb ik een voorbeeld van hoe het zou moeten worden toegevoegd.

De celeigenschappen van kolom C gaan met onderstaande code wel op tekst.

Code:
Sub Komma_Punt()
Dim sv, i As Long
sv = Sheets("blad1").Range("A1", Sheets("blad1").Cells(Rows.Count, 3).End(xlUp))
With Sheets("blad2")
Sheets("blad1").Range("a1", Sheets("blad1").Cells(Rows.Count, 3).End(xlUp).Offset(, -2).Resize(, 3)).Copy .Cells(1)
   For i = 2 To UBound(sv)
      sv(i, 1) = "G" & sv(i, 1)
      sv(i, 2) = Mid(sv(i, 2), 1, 40)
      sv(i, 3) = Replace(sv(i, 3), ",", ".")
    Next i
       .Cells(1, 3).Resize(UBound(sv)).NumberFormat = "@"
       .Cells(1, 1).Resize(UBound(sv), 3) = sv
       .Columns.AutoFit
 End With
End Sub

Deze code werkt goed! Alvast bedankt HSV (geld overigens ook voor de andere reacties!).

Tegen het onderstaande loop ik nog aan:
  1. Zodra een grootboek 3 cijfers is moet er "G000" worden toegevoegd i.p.v. "G00"
  2. De gegevens moeten worden geselecteerd vanaf cel A2 (ik heb al e.a.a. geprobeerd, maar dan krijgen de gekopieerde cellen niet het gewenste formaat mee)
  3. Er mogen geen cellen zijn opgemaakt in Blad2
 

Bijlagen

  • INLEZEN.xlsm
    17,2 KB · Weergaven: 34
Voor punt 1
Code:
sv(i, 1) = "G" & Format(sv(i, 1), "000000")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan