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

Gebruikte valuta teken van een range cellen veranderen

Status
Niet open voor verdere reacties.

Blokdijk

Gebruiker
Lid geworden
28 sep 2011
Berichten
74
Goede de dag allemaal.
Ik heb een sheet met prijzen in de range van D6 t/m AK155. de cel opmaak van deze cellen staat nu standaard op het gebruik van het € teken. Hoe kan ik er nu voor zorgen dat wanneer een gebruiker van deze sheet opgeeft in cel B2 dat de valuta in GBP moet veranderen, automatisch de cel opmaak van de cellen in de rangen van D6 t/m AK155 verandert in £ ?

Alvast bedankt voor jullie snelle feedback
 
Zoiets?
Code:
Sub Spaarie()
  For Each v In Sheets(1).Range("D6:AK155")
    If v <> "" Then v.NumberFormat = Sheets(1).Range("B2") & " #,##0.00_-"
  Next
End Sub
 
Spaarie, Ik neem aan dat ik hier de "sheet (1)" naam moet veranderen in de juiste sheet-naam .. en moet ik dan nog iets met het "v" teken doen ? .. en laatste vraag .. ik zie dat het een sub is .. die dus middels een macro aangeroepen dient te worden .. zou dit ook zonder macro kunnen .. maar aan de hand van de waarde (al dan niet "gbp" in cel b2 ?
Hoor het graag van je. en al vast bedankt
 
Sheets(1) = het 1e blad in je tabbladen index. Kan veranderd worden naar Sheets("naamBlad")
De v = een variabele die moet je laten staan, maar ik zal met oog op je 3e vraag v veranderen voor cel. De v is verder een verwijzing voor mezelf naar Value...

Plak deze in de VBA editor achter het gewenste blad, je hoeft niet meer de Blad naam op te geven.
Code:
Private Sub Worksheet_Change(ByVal target As Range)
  target.Address = "$B$4"
  For Each cel In Range("D6:AK155")
    If cel <> "" Then cel.NumberFormat = Range("B2") & " #,##0.00_-"
  Next
End Sub
 
Spaarie, dank je ... denk dat dit wel gaat werken .. alleen krijg ik nu helaas een complieer fout. en als ik dan de VBA laat openen .. dan is het gelijk in de eerste regel .. Mijn betreffende worksheet heet "offer" en de waarde in B2 (EURO of GBP) word bepaald aan de hand van wat de gebruiker opgeeft in een andere worksheet ..
 
compileer fout : Toewijzing aan constant niet toegestaan ....
Code:
Private Sub Worksheet_Change(ByVal target As Range)
  target.Address = "$B$4" en hier komt dan Address "geselcteerd" te voorschijn.
 
Laatst bewerkt door een moderator:
Sorry, foutje van moi...
Code:
Private Sub Worksheet_Change(ByVal target As Range)
  If target.Address = "$B$4" Then
    For Each cel In Range("D6:AK155")
      If cel <> "" Then cel.NumberFormat = Range("B4") & "#,##0.00"
    Next
  End If
End Sub
 
Spaarie, sorry .. maar krijg helaas weer een fout melding ..
Fout 1004 tijdens uitvoering : eigenschap Numberformat van klasse Range kan niet worden ingesteld ..
en bij fout opsporing geeft hij aan dat we moeten zoeken in regel 4 vanaf Cel.NumberFormat
 
Spaarie, ik heb jouw bestand geprobeerd .. maar .. helaas .. als ik kies voor het € teken dan pas hij niets aan en blijft het £ teken gewoon voor de bedragen staan ..
 
Schiet mij maar terug in me kapotje... ga wat anders proberen...
 
moet ik misschien de cel eigenschappen van de betreffende cellen aanpassen ?
 
Hierbij...

Wilde deze opmaak niet, maar ach... het werkt ;)
 

Bijlagen

Laatst bewerkt:
Bekijk bijlage 187851 Spaarie, zie bestand .. waarom werkt het bij mij niet dan ? (ok. de range is in werkelijkheid van D6 t/m AK155 .. maar snap het niet waarom ik een foutmelding krijg ..
 
Ik heb hem .. hij werkt .. nog 1 laatste vraag ... hoe kan ik het "target.Address" veranderen in een cel van een andere sheet ?
 
Verhuis de gehele achterliggende code naar het betreffende blad en verwijs naar het te wijzigen tabblad..
Code:
Private Sub Worksheet_Change(ByVal target As Range)
  If target.Address = "$B$4" Then
  symbool = Choose(WorksheetFunction.Match(Range("B4"), Array("EUR", "USD", "GBP"), 0), "€", "\$", "£")
    [COLOR="#FF0000"]Sheets("sheetnaam")[/COLOR].Range("D6:V90").NumberFormat = symbool & " * #,##0.00"
  End If
End Sub
 
Spaarie, Ik snap dat je moe van me wordt .. maar krijg het niet voor elkaar .. heb de formule verhuist naar het juist blad .. en aangepast .. heb de verwijzing sheet ("offer"). range(d6:ak155") aangepast .. en het werkt helaas niet ...
 
hEB OOK NOG DE : Choose(WorksheetFunction.Match(Range("B4"), AANGEPAST NAAR DE JUIST CEL IN HET JUIST BLAD .. MAAR .. KRIJG HET NIET VOOR ELKAAR ..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan