Para birimi formatını hücreden alma...

Katılım
29 Ocak 2024
Mesajlar
220
Excel Vers. ve Dili
Office 2016
Kıymetli Hocalarım merhaba;

ekli dosyada Sayfa1 adlı sayfada "C2" hücresinde seçimli olarak para birimleri (EUR, USD, TRL) mevcut,
C2 hücresinde yer alan para birimini aşağıda yer alan belirlenen hücrelere para birimi biçimi olarak aktarmak mümkün müdür?

https://dosya.co/936bn9hw8t22/Kitap6.xlsx.html


yardımlarınız için şimdiden teşekkürler,
iyi Çalışmalar.
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,941
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selam

Yüklediğiniz dosyayı indiremiyorum. Başka bir siteye yükleyip paylaşırsanız daha iyi olur
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,884
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sayfanızın KOD sayfasına yapıştırabilrisiniz.


C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [C2]) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Dim simge As String
    Dim myRange As Range
    Set myRange = Range("C6:D99") ' Burayı değiştirebilirsiniz
    simge = Range("C2").Value
    Select Case simge
        Case "TRL"
            simge = ChrW(8378)
        Case "EUR"
            simge = ChrW(8364)
        Case "USD"
            simge = ChrW(36)
    End Select
    If simge <> "" Then
        myRange.NumberFormatLocal = "_-" & simge & "* #.##0,00_-;" & "_-" & simge & "* -#.##0,00_-;" & "_-" & simge & "* ""-""??_-;_@_-"
    End If
    Application.EnableEvents = True
End Sub
 

nihatkr

Altın Üye
Altın Üye
Katılım
25 Ağustos 2006
Mesajlar
477
Excel Vers. ve Dili
2007 Türkçe
2010 Türkçe
2013 Türkçe
OFİS 365
Altın Üyelik Bitiş Tarihi
09.10.2029
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ParaKodu As String
Dim hücre As Range
Dim FormatStr As String

If Not Intersect(Target, Me.Range("J32")) Is Nothing Then
On Error GoTo Cikis
Application.EnableEvents = False

Select Case Trim(UCase(Me.Range("J32").Value))
Case "TL": ParaKodu = "TL"
Case "USD": ParaKodu = "USD"
Case "EURO", "EUR": ParaKodu = "EUR"
Case Else: ParaKodu = ""
End Select

' Format seçimi
If ParaKodu = "" Then
FormatStr = "General"
Else
FormatStr = "#,##0.00 """ & ParaKodu & """"
End If

' G35:G100 ve H35:H100 hücrelerini güncelle
For Each hücre In Me.Range("G34:G100,H34:H100")
If IsNumeric(hücre.Value) And Not IsEmpty(hücre.Value) Then
hücre.NumberFormat = FormatStr
End If
Next hücre

Cikis:
Application.EnableEvents = True
End If
End Sub
 
Katılım
29 Ocak 2024
Mesajlar
220
Excel Vers. ve Dili
Office 2016
Sayfanızın KOD sayfasına yapıştırabilrisiniz.


C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [C2]) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Dim simge As String
    Dim myRange As Range
    Set myRange = Range("C6:D99") ' Burayı değiştirebilirsiniz
    simge = Range("C2").Value
    Select Case simge
        Case "TRL"
            simge = ChrW(8378)
        Case "EUR"
            simge = ChrW(8364)
        Case "USD"
            simge = ChrW(36)
    End Select
    If simge <> "" Then
        myRange.NumberFormatLocal = "_-" & simge & "* #.##0,00_-;" & "_-" & simge & "* -#.##0,00_-;" & "_-" & simge & "* ""-""??_-;_@_-"
    End If
    Application.EnableEvents = True
End Sub
Hocam teşekkürler,

anladığım kadarıyla kod olmadan formül ile bunu yapmak mümkün değil;

iyi Çalışmalar dilerim.
 
Katılım
29 Ocak 2024
Mesajlar
220
Excel Vers. ve Dili
Office 2016
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ParaKodu As String
Dim hücre As Range
Dim FormatStr As String

If Not Intersect(Target, Me.Range("J32")) Is Nothing Then
On Error GoTo Cikis
Application.EnableEvents = False

Select Case Trim(UCase(Me.Range("J32").Value))
Case "TL": ParaKodu = "TL"
Case "USD": ParaKodu = "USD"
Case "EURO", "EUR": ParaKodu = "EUR"
Case Else: ParaKodu = ""
End Select

' Format seçimi
If ParaKodu = "" Then
FormatStr = "General"
Else
FormatStr = "#,##0.00 """ & ParaKodu & """"
End If

' G35:G100 ve H35:H100 hücrelerini güncelle
For Each hücre In Me.Range("G34:G100,H34:H100")
If IsNumeric(hücre.Value) And Not IsEmpty(hücre.Value) Then
hücre.NumberFormat = FormatStr
End If
Next hücre

Cikis:
Application.EnableEvents = True
End If
End Sub
Çok teşekkürler,
iyi Çalışmalar dilerim.
 
Üst