• DİKKAT

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

Kodun neresi yanlış?

Katılım
1 Mart 2016
Mesajlar
25
Excel Vers. ve Dili
2003
Arkadaşlar öncelikli olarak herkese merhabalar. Yüksek lisans çalışmalarım kapsamında verilen küçük küçük ödevler var ve ben bir tanesinde takılmış durumundayım.
Özetle anlatmam gerekirse 1'den 100'e kadar sayıları word dosyasına makro ile yazdırmam gerekiyor. Ancak rakam kaç basamaklı ise başına toplamı 5'e tamamlayacak kadar nokta koydurmam gerekiyor. Mesela 4 sayısı için ....4, 17n sayısı için ...17, 100 için de ..100 yazdırmam gerekiyor. Böylece işlem sonunda elimde ....1....2....3... . . ...42...43...44... . . ...98...99..100 gibi bir dize oluşacak.
Ancak hazırladığım kodda hep 4 tane nokta atıyor, i değerini bir türlü tanıtamıyorum. Aşağıya hazırladığım kodu aynen kopyalıyorum, yanlışım nerede yardımcı olursanız çok sevinirim.

Kod:
Sub Worddosyasiolustur4()
    Dim Wordsayfasi As Object
    Dim i As Integer
    Set Wordsayfasi = CreateObject("word.Application")

    Wordsayfasi.Visible = True
    With Wordsayfasi.Documents.Add
        For i = 1 To 100
        
        If 0 < i < 10 Then
           .Content.InsertAfter "...."
           .Content.InsertAfter i
           
        ElseIf 9 < i < 100 Then
            .Content.InsertAfter "..."
            .Content.InsertAfter i
            
        Else
            .Content.InsertAfter ".."
            .Content.InsertAfter i
            
        End If
            
        Next i
        .SaveAs ("C:\Users\...\Desktop\....\Yeniword4.Doc")
    End With
    Wordsayfasi.Quit
End Sub
 
Son düzenleme:
Merhaba.
Öncelikle forum kurallarını okuyor ve kod yapıştırırken # butonu ile kodun etrafına kod etiketlerinin gelmesini sağlamamız gerektiğini öğreniyoruz.

[ CODE ]KodBurayaYapıştırılacak[ /CODE ]
(köşeli parantezlerden önceki ve sonraki boşlukları görsellik için ekledim. normalde yoklar.)

normalde yardım forumlarında ödev yapılmasına yardımcı olunmaz.

fakat belli bir aşamaya gelmiş ve ortaya bir kod çıkarmış, doğru mantığı da yakalamışsınız. karşılaştırma operatörlerinin kullanımı konusunda biraz bilgi eksikliği var. ben onu tamamlayayalım.

VBA'de karşılaştırmayı 2 değer üzerinden yaparız. aynı anda çok koşul AND veya Or operatörleri ile test edilebilir.

dolayısı ile eğer i < 10 ise, eğer i < 100 ise gibi bir yazım gerekiyor.
 
Merhaba.
Öncelikle forum kurallarını okuyor ve kod yapıştırırken # butonu ile kodun etrafına kod etiketlerinin gelmesini sağlamamız gerektiğini öğreniyoruz.

[ CODE ]KodBurayaYapıştırılacak[ /CODE ]
(köşeli parantezlerden önceki ve sonraki boşlukları görsellik için ekledim. normalde yoklar.)

normalde yardım forumlarında ödev yapılmasına yardımcı olunmaz.

fakat belli bir aşamaya gelmiş ve ortaya bir kod çıkarmış, doğru mantığı da yakalamışsınız. karşılaştırma operatörlerinin kullanımı konusunda biraz bilgi eksikliği var. ben onu tamamlayayalım.

VBA'de karşılaştırmayı 2 değer üzerinden yaparız. aynı anda çok koşul AND veya Or operatörleri ile test edilebilir.

dolayısı ile eğer i < 10 ise, eğer i < 100 ise gibi bir yazım gerekiyor.

Teşekkür ederim, forum kurallarını okuyorum hemen.
 
Merhaba
Döngüylede olabilir;
 
Son düzenleme:
sayın plint,

öğrenci kardeşimizin kendisinin bir çözüm bulmasını bekliyorum.
kodun %99.99'u hazır zaten.
 
sayın plint,

öğrenci kardeşimizin kendisinin bir çözüm bulmasını bekliyorum.
kodun %99.99'u hazır zaten.

Teşekkür ediyorum, hatamı buldum. Kodu da aşağıdaki gibi düzelttim.
Kod:
Private Sub CommandButton4_Click()
    Dim Wordsayfasi As Object
    Set Wordsayfasi = CreateObject("word.Application")

    Wordsayfasi.Visible = True
    With Wordsayfasi.Documents.Add
        For i = 1 To 100
        If i <= 9 Then
            .Content.InsertAfter "...." & i
                      
        ElseIf i <= 99 Then
            .Content.InsertAfter "..." & i
                      
        Else
            .Content.InsertAfter ".." & i
           
        End If
            
        Next i
        .SaveAs (Cells(7, 11).Value & "\Yeniword4.Doc")
    End With
    Wordsayfasi.Quit
End Sub
 
Merhaba
Kusura bakmayın ilgilenmediğinizi sanmıştım, yukarıdaki kodları sildim.

estağfurullah.

biraz dikkat çekmek amaçlı yazdım.

özellikle eğitim amaçlı sorularda yönlendirme yapmak daha doğru fikrindeyim.

teşekkürler.
 
Teşekkür ediyorum, hatamı buldum. Kodu da aşağıdaki gibi düzelttim.
Kod:
Private Sub CommandButton4_Click()
    Dim Wordsayfasi As Object
    Set Wordsayfasi = CreateObject("word.Application")

    Wordsayfasi.Visible = True
    With Wordsayfasi.Documents.Add
        For i = 1 To 100
        If i <= 9 Then
            .Content.InsertAfter "...." & i
                      
        ElseIf i <= 99 Then
            .Content.InsertAfter "..." & i
                      
        Else
            .Content.InsertAfter ".." & i
           
        End If
            
        Next i
        .SaveAs (Cells(7, 11).Value & "\Yeniword4.Doc")
    End With
    Wordsayfasi.Quit
End Sub

önce kendimiz yapmaya çalışıyoruz.
sonra Google araştırması yapıyoruz.
çözüm üretemez isek iyi arama yapamadığımızı anlıyoruz.
daha iyi arıyoruz.
yine de çözüme ulaşamaz isek daha tecrübeli kullanıcılardan kısmi destek alıyoruz.
öğrenmenin en iyi yolu bu inancındayım.
tabii her konuda olduğu gibi eğitim şart. eğitimi internet desteği ile kendimiz kendimize verebiliriz. benim de çoğunlukla yaptığım budur.
bir diğer husus, her zaman öğrenciyiz.
başarılar dilerim.
 
önce kendimiz yapmaya çalışıyoruz.
sonra Google araştırması yapıyoruz.
çözüm üretemez isek iyi arama yapamadığımızı anlıyoruz.
daha iyi arıyoruz.
yine de çözüme ulaşamaz isek daha tecrübeli kullanıcılardan kısmi destek alıyoruz.
öğrenmenin en iyi yolu bu inancındayım.
tabii her konuda olduğu gibi eğitim şart. eğitimi internet desteği ile kendimiz kendimize verebiliriz. benim de çoğunlukla yaptığım budur.
bir diğer husus, her zaman öğrenciyiz.
başarılar dilerim.

Teşekkür ederim, tüm dedikleriniz dikkate alacağımdan emin olabilirsiniz. Yardımlarınız için sağolun.
 
Geri
Üst