• 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.

Macro: punt automatisch vervangen door komma

Status
Niet open voor verdere reacties.

sjoerd81

Gebruiker
Lid geworden
24 jul 2009
Berichten
161
Hallo,

Ik heb al uitgebreid gezocht maar kan toch niet helemaal dat gene vinden wat ik zoek.

De gele cellen in de bijlage worden vanuit een site gekopieerd. Deze bedragen worden met een punt weergeven en nu wil ik deze automatisch vervangen door een komma. Dit wil ik via een VBA code bewerkstelligen. Maar ja hoe?

Sjoerd
 

Bijlagen

ctrl-H / . ,

Code:
sub vervang()
  cells.replace ",", "."
End Sub
 
De code heeft betrekking op een beperkt aantal cellen. De cellen waar de "." vervangen moet worden door de "," heb ik "punt" genoemd.

Ik heb nu de volgende code:

Sub vervang()
If Range("punt") "." Then ","
End Sub


Maar ja, de code werkt niet. Wie helpt?

Sjoerd
 

Bijlagen

Code:
Sub vervang()
  Range("punt").Replace ".", ","
End Sub
 
Via een button lukt het me. Ik wil echter dat dit automatisch loopt zonder gebruik te maken van een button. Kan dat?

Sjoerd
 

Bijlagen

Ja, bv met een Worksheet_Change. of verwerk dit in je kopieërcode indien dit ook automatisch gebeurt.
 
Rudi, zou je de code in het document willen aanpassen, want het is me niet helemaal duidelijk?

Bvd
Sjoerd
 
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Range("punt").Replace ".", ","
End Sub
 
Ik ben er nog niet uit. Ik heb ergens op het forum gelezen dat ik de code in het blad zou moeten zetten en niet in een module. Hoe zet ik de code in het blad?
 
Om code aan een blad te koppelen:
Klik met rechter muisknop op het tabblad en ga naar programmacode weergeven
Kies in de VBA editor in de keuzelijst voor object "Worksheet" en in de andere keuzelijst een geschikte event. Wat dit in jouw geval is weet ik niet, ik heb maar de Activate Event gekozen

Plaats dan bvb volgende code:



Code:
Private Sub Worksheet_Activate()
Dim gebied As Range, blad As Worksheet
Set blad = ActiveSheet
Set gebied = blad.UsedRange
gebied.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
gebied.ClearFormats
End Sub

Ik heb gewerkt met de UsedRange maar je kan natuurlijk ook werken met je eigen range.

Maar nu zijn er wel wat eigenaardigheden.
Als ik jouw bestand open in Excel 2007, PC met Belgische settings (komma als decimaal teken) dan zie ik jouw getallen helemaal niet met een punt, maar met een komma.
Als ik de macro test op gegevens met een punt, dan wordt dat wel vervangen door een komma, maar het resultaat veschijnt links, met als info dat de inhoud is geformatteerd als tekst. Mijn lijntje gebied.ClearFormats verandert daar helemaal niets aan???
 
Ik ben er toch nog niet helemaal. De code werkt alleen als het blad niet beveiligd is. Probleem is nu juist dat ik het blad wel beveiligd hebt. Hoe los ik dit op?
 
Laatst bewerkt:
Ik ben er toch nog niet helemaal. De code werkt alleen als het blad niet beveiligd is. Probleem is nu juist dat ik het blad wel beveiligd hebt. Hoe los ik dit op?

Blad niet beveiligen vanuit Excel, maar vanuit VBA

Code:
Sub beveilig()
Dim blad As Worksheet
Set blad = ActiveSheet
blad.Protect userinterfaceonly:=True
End Sub

Het argument UserInterfaceOnly op TRUE zetten zorgt ervoor dat de macro's wél, maar de gebruiker géén wijzigingen aan het blad kan aanbrengen.
 
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Sheets("naam van je blad").Unprotect
  Range("punt").Replace ".", ","
  Sheets("naam van je blad").Protect
End Sub
 
Rudi,

Het document betreft meerdere werkbladen. Ik wil deze macro alleen gebruiken voor dit werkblad. Het werkblad voor deze macro wordt door collega's ingevuld. Sommige cellen zijn daarom gelocked andere niet. De cellen waar de punt door de komma vervangen moet worden zijn natuurlijk niet gelocked. Echter wanneer het getal van een andere internetsite wordt gekopieerd naar het werkblad wordt de cel wel gelocked. Kan dit worden verholpen?
 
ctrl + H (bewerken en vervangen)

je vraagt een vba-oplossing.

ik geef voor de volledigheid ook de excel-oplossing.

ctrl + H (bewerken => vervangen)

vervangen , door .

zoeken via kolom => vervang alles.

kolom is omgezet van , naar .

met vriendelijke groeten,

Oeldere
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan