• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

açıklama kutusundaki değerleri toplama

  • Konbuyu başlatan Konbuyu başlatan ETEKİN
  • Başlangıç tarihi Başlangıç tarihi
Katılım
25 Aralık 2006
Mesajlar
109
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba arkadaşlar;

Hücrelerin içinde tarihler, açıklama kutusunda da değerler var.Benim sorunum, hücre içerisindeki tarihlere göre açıklama kutusundaki değerlerin nasıl toplanacağı.

Private Sub UserForm_initialize()
On Error Resume Next
For a = 2 To 6
For x = 1 To 7
If Cells(a, x).Range <= Date Then deg = deg + Cells(a, x).Comment.Visible.Value

Next x
Next a

UserForm1.Label4 = deg
end sub

Sevgi ve saygıyla
 
Kod:
If Cells(a, x).Range <= Date Then deg = deg + [B]Cells(a, x).Comment.Visible.Value[/B]
satırını
Kod:
If Cells(a, x).Range <= Date Then deg = deg + [B]Cells(a, x).Comment.Text[/B]
değiştirirerek dener misiniz?
 
Hamitcan Bey
İlginiz içi teşekkür ederim.
label4 te=açıklamalarda bulunan değerlerin toplam alması gerekiyor.Fakat açıklamalarda bulunan değerler;
50,0050,00100,00 diye görünüyor.

Sevgi ve Saygıyla
 
Birden fazla rakam&#305;n olmas&#305; ve biti&#351;ik olmas&#305; &#231;&#246;z&#252;m&#252; zorla&#351;t&#305;r&#305;yor.Size &#246;nerim, a&#231;&#305;klama i&#231;inde g&#246;r&#252;nen rakamlar&#305; teke d&#252;&#351;&#252;rmeniz.
 
Açıklmalarda tek sayı var.1.10.2007 tarihinde açıklamada tek sayı,
16.10.2007 tarihinde açıklamada tek sayı vb. bu tarihlerdeki sayıların toplamı istiyorum.

Sevgi ve Saygıyla
 
&#214;rnek bir dosya ekler misiniz ?
 
Eski kodu, aşağıdaki ile değiştirin.
Kod:
Private Sub UserForm_initialize()
On Error Resume Next
For a = 2 To 6
For x = 1 To 7
If Cells(a, x).Range <= Date Then deg = deg + Val(Cells(a, x).Comment.Text)
'If CDate(Cells(a, x).Range) = Date Then Cells(a, x).Comment.Text
'If CDate(Cells(a, x).Range) < Date Then Cells(a, x).Comment.Text
'If CDate(Cells(a, x).Range) > Date Then Cells(a, x).Comment.Text

Next x
Next a


UserForm1.Label4 = deg
UserForm1.Label5 = CDbl(deg1 + 1191.24)
UserForm1.Label6 = UserForm1.Label4 - UserForm1.Label5

'eksi değere göre kırmızı oluyor
If Label6 < 0 Then
'Label3.ForeColor = &HFF&
Label6.ForeColor = &HFF&
End If

'grafik çizimi
Dim SeriIsmi(1)
Dim Degerler(3)
Dim Sabitler

SeriIsmi(0) = "Örnek Değer"
Degerler(0) = Val(Me.Label4.Caption)
Degerler(1) = Val(Me.Label5.Caption)
Degerler(2) = Val(Me.Label6.Caption)
With ChartSpace1
Set c = .Constants
.Charts.Add
' Grafiği dizilere bağlar.
With .Charts(0)
'.Type = c.chChartTypeArea
.SetData c.chDimSeriesNames, chDataLiteral, SeriIsmi
.SeriesCollection(0).SetData c.chDimValues, chDataLiteral, Degerler
End With
End With

End Sub
 
Hamitcan Bey;
Kodlarınız mükemmel çalışıyor.Çok teşekkür ederim.

Aynı açıklamada iki değer olursa nasıl olur?
 
Olmasa daha iyi desem. Şaka bir tarafa, rakamları birbirinden ayırmak için bir ayıraç kullanmalısınız. Kısaca, rakamları bir standarta oturtmalısınız.
 
Şunu demek istemiştim.
1.açıklamada 500,00 ve 200,00 değerleri
2.açıklamada 200,00 değeri
toplam 900,00 olması gibi.
 
Kodu biraz değiştirdim.
Not: Açıklamalardaki rakamları (Örn:5+6+7 gibi yazdığınızı varsaydım.)

Kod:
Function aciklamalaritopla()
On Error Resume Next
For Each hucre In [a2:g6].SpecialCells(xlCellTypeComments)
If hucre <= Date Then
sonuc = Split(hucre.Comment.Text, "+")
For i = 0 To Len(hucre.Comment.Text)
topla = topla + Val(sonuc(i))
Next
End If
Next
aciklamalaritopla = topla
End Function


Private Sub UserForm_initialize()
On Error Resume Next


UserForm1.Label4 = aciklamalaritopla
UserForm1.Label5 = CDbl(deg1 + 1191.24)
UserForm1.Label6 = UserForm1.Label4 - UserForm1.Label5

'eksi değere göre kırmızı oluyor
If Label6 < 0 Then
'Label3.ForeColor = &HFF&
Label6.ForeColor = &HFF&
End If

'grafik çizimi
Dim SeriIsmi(1)
Dim Degerler(3)
Dim Sabitler

SeriIsmi(0) = "Örnek Değer"
Degerler(0) = Val(Me.Label4.Caption)
Degerler(1) = Val(Me.Label5.Caption)
Degerler(2) = Val(Me.Label6.Caption)
With ChartSpace1
Set c = .Constants
.Charts.Add
' Grafiği dizilere bağlar.
With .Charts(0)
'.Type = c.chChartTypeArea
.SetData c.chDimSeriesNames, chDataLiteral, SeriIsmi
.SeriesCollection(0).SetData c.chDimValues, chDataLiteral, Degerler
End With
End With
End Sub
 
Harikasınız! Çok teşekkür ederim.
 
Geri
Üst