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

Porlbeem met het wijzigen van celformat

Status
Niet open voor verdere reacties.

TEAMLegendary

Gebruiker
Lid geworden
11 mrt 2016
Berichten
7
Hallo,

Ik heb op dit moment een aantal getallen die niet goed worden weergegeven.
Hiervoor moet ik eerst de waarde in de cel aanklikken en daarna op enter klikken.
Ik heb hier wel een macro voor maar deze duurt nogal lang om uit te voeren.

Op dit moment is dit mijn macro:
Sub Waarden_corrigeren_Input_TC()
Range("M29:N303").Select
Dim r As Range, rr As Range
Set rr = Selection
For Each r In rr
r.Select
Application.SendKeys "{F2}"
Application.SendKeys "{ENTER}"
DoEvents
Next
End sub

Deze macro doet er helaas te lang over.
Is er een snellere oplossing op dit goed te krijgen?
 
Probeer het zo eens

Code:
Sub VenA()
Dim cl
for each cl in [M29:N303]
    cl.value = cl.value * 1
next cl
End Sub
 
Deze is eigenlijk ook voldoende:
Code:
Sub Cobbe()
 Range("M29:N303") = Range("M29:N303").Value
End Sub
 
Probleem Macro

VenA en Cobbe, bedankt voor jullie reacties!

Op het antwoord van VenA:

Jou macro werkt in eerste instantie wel, de waardes worden in no time goed gezet. Echter komen in de cellen in de range [M29:N303] die leeg zijn en waar geen waarden in staan nu een nul en dit is niet de bedoeling.
Ik heb namelijk enkele Count formules die in deze range lopen.
Het aantal gevulde cellen in de range [M29:N303] verschilt overigens per dag.
Heb je misschien een oplossing voor die nullen?:)
De nullen die reeds in het bestand staan (in de gevulde regels die niet door de macro zijn ingegeven) moeten blijven en mogen niet gewijzigd/verwijderd worden (zie bijlage "Test").


Op het antwoord van Cobbe

Jou macro doet bij mij helaas niets.


Op dit moment heb ik dus :
Sub Waarden_corrigeren
Dim cl
For Each cl In [M29:N303]
cl.Value = cl.Value * 1
Next cl

Dim cl
For Each cl In [M29:N303]
If cl.Value = 0 Then cl.Value = " "
Next cl

End sub

Het tweede gedeelte werkt echter niet goed. Ik zou graag willen dat hij alleen de nul weghaalt en vervangt door leegte wanneer er in dezelfde rij in kolom A niets staat. Dus wanneer er in kolom A iets staat moet hij in de range M29:N303 niet kijken naar de nullen in range M29:N303 en anders wel.
Weet iemand overigens hoe ik twee Dimensions in één Sub krijg? (dit hoeft niet perse hoor).

Ik heb een testfile geplaatst waarmee jullie misschien meer kunnen en snappen wat ik bedoel.
Nogmaals het aantal regels verschilt dus per dag.

Alvast bedankt!
 

Bijlagen

Zo dan?

Code:
Sub VenA()
For Each cl In Range("M29:N" & Cells(Rows.Count, 14).End(xlUp).Row)
    If cl.Value <> "" Then cl.Value = cl.Value * 1
Next cl
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan