• DİKKAT

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

Makro Toplama hatası

  • Konbuyu başlatan Konbuyu başlatan oguzka
  • Başlangıç tarihi Başlangıç tarihi
Katılım
9 Ağustos 2009
Mesajlar
208
Excel Vers. ve Dili
Excel 2007
Merhabalar;
Makrolarımda h ve d değişkenine atadığım iki sayı var. c = h +d dediğimde h ve d sayılarını toplamak yerine yan yana yazarak yeni bir üretiyor. Bu neden olabilir? h=10 d= 30 iken c= 40 olacağına c=1030 oluyor.
 
Merhabalar;
Makrolarımda h ve d değişkenine atadığım iki sayı var. c = h +d dediğimde h ve d sayılarını toplamak yerine yan yana yazarak yeni bir üretiyor. Bu neden olabilir? h=10 d= 30 iken c= 40 olacağına c=1030 oluyor.
h ve d değişkenlerinizi string olarak tanımlamışsınız.
Sayı olarak tanımlamanız lazım.
Veri tanımlama konusu sitede işlendi veri tanımlama diye arama yapınız.:cool:
 
Evren Bey string olarak tanımlama yapmadım aksine long , integer, double, variant gibi tüm değişken tiplerini kullarak da denedim. Aynı sonucu veriyor.
 
Evren Bey string olarak tanımlama yapmadım aksine long , integer, double, variant gibi tüm değişken tiplerini kullarak da denedim. Aynı sonucu veriyor.
Ama kullandığınız kodları vermemişsiniz ki.
verin kodları görelim bir.
belki başka yertde başka bir şey yaptınız.:cool:
Veya dosyayı ekleyin.:cool:
 
h = UserForm33.TextBox2.Value
If h = "" Then h = 0
b = UserForm33.TextBox3.Value
If b = "" Then b = 0
d = UserForm33.TextBox4.Value
If d = "" Then d = 0
l = UserForm33.TextBox5.Value
If l = "" Then l = 0


If UserForm33.OptionButton1.Value = True Then
minhaalin = b * d / 10000
If d >= 100 Then
iskele1 = (d * d / 4) * 2 * l
End If
c = d + h
If c >= 100 Then
iskele = iskele1 + (((c ^ 2) / 4) * b) - ((h * h / 4) * b)
End If
End If

kırmızı satırdaki işlemi yanlış yapıyor. Burada hiç değişken tanımlamadan kodları verdim. Bahsettiğim tüm değişkenleri kodun en başına yazarak denedim
 
h = UserForm33.TextBox2.Value
If h = "" Then h = 0
b = UserForm33.TextBox3.Value
If b = "" Then b = 0
d = UserForm33.TextBox4.Value
If d = "" Then d = 0
l = UserForm33.TextBox5.Value
If l = "" Then l = 0


If UserForm33.OptionButton1.Value = True Then
minhaalin = b * d / 10000
If d >= 100 Then
iskele1 = (d * d / 4) * 2 * l
End If
c = d + h
If c >= 100 Then
iskele = iskele1 + (((c ^ 2) / 4) * b) - ((h * h / 4) * b)
End If
End If

kırmızı satırdaki işlemi yanlış yapıyor. Burada hiç değişken tanımlamadan kodları verdim. Bahsettiğim tüm değişkenleri kodun en başına yazarak denedim
tanımlama yok burada
bir şey tanımlanmışsa o variant değiken olur.
Yani hangi değeri alıyorsa o değere kendini uydurur.
siz tanımlama yapmadığınız için
textboxtan alınan değer metin olduğu için.sıfrıda olsa sayıda olsa texboxtaki tüm değerler dönüştürülmedikçe metin kabul edilir.
tanımlamayı prosedürün ilk satırnda yapmalısınız
tanım lamara dim ile başlarlar
dimension un kısaltılmışı.tanımlama dmektir.
işte ben size onun için dedim tanımladınızmı diye.:cool:
 
Evren Bey öncelikle ilginize teşekkür ederim. 5 nolu mesajın altında yazdıklarımla sanırım iyi ifade edemedim kendimi. Bu kodların başına 3. mesajda bahsettiğim tüm değişken tiplerini tanımlayarak da denedim ancak aynı sonucu aldım.
Ben sadece size tanımlanmamış halini gönderdim. Dim h as integer
dim d as integer gibi tüm tanımlamaları yaptığımda da aynı sonucu alıyorum.
 
merhaba

bunun gibi deneyiniz.

Kod:
h =CDbl(UserForm33.TextBox2.Value)
 
Evren Bey öncelikle ilginize teşekkür ederim. 5 nolu mesajın altında yazdıklarımla sanırım iyi ifade edemedim kendimi. Bu kodların başına 3. mesajda bahsettiğim tüm değişken tiplerini tanımlayarak da denedim ancak aynı sonucu aldım.
Ben sadece size tanımlanmamış halini gönderdim. Dim h as integer
dim d as integer gibi tüm tanımlamaları yaptığımda da aynı sonucu alıyorum.
alamzsınız.
O zaman tanımlamaları başka bir proseürde yaptınız.
değişkenleri ise başka bir proseürde kullanıyorsunuzdur.
Yada değişken lerin kullanıldığ prosedürde (Sub ile Başlar End Sub ile biter) bu değişkenller tanımlanmamış.100/1000 böyle.
:cool:
 
Yardımlarınız için teşekkür ederim....
 
Geri
Üst