• DİKKAT

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

Word içinde makro uygulaması

Katılım
15 Ağustos 2007
Mesajlar
44
Excel Vers. ve Dili
2007 Türkçe
Sevgili arkadaşlar, üstadlar

Word içerisinde makro ile veri girişi yaparak gerekli yerlere bilgi girişi mümkün müdür? Yada bir userform ile


ekte örnek var yardımlarınızı bekliyorum.

Teşekkürler!
 
Dosya ekledim.

Sevgili arkadaşlar, üstadlar

Word içerisinde makro ile veri girişi yaparak gerekli yerlere bilgi girişi mümkün müdür? Yada bir userform ile


ekte örnek var yardımlarınızı bekliyorum.

Teşekkürler!

Örnek dosyayı eklememişim. Şimdi ekledim sanırım.
 

Ekli dosyalar

Bir UserForm oluşturup içine altı adet TextBox ve bir adet CommandButton ekleyin, sonra da aşağıdaki kodu, kod kısmına yapıştırın.
Kod:
Private Sub CommandButton1_Click()
    With ActiveDocument.Tables(1)
        .Cell(1, 2).Range = TextBox1.Text
        .Cell(1, 4).Range = TextBox2.Text
        .Cell(2, 2).Range = TextBox3.Text
        .Cell(2, 4).Range = TextBox4.Text
        .Cell(3, 2).Range = TextBox5.Text
        .Cell(3, 4).Range = TextBox6.Text
    End With
    UserForm1.Move UserForm1.Left + 0.01
End Sub
 
Çok teşekkürler..Deneyip sonucunu burada paylaşırım.
Saygılarımla.
 
Hamit Bey, bu kodlar çok işime yaradı teşekkür ederim. Yalnız mevcut bir excel dökumanımdaki bir tablonun indexinin kaç olduğunu nasıl anlarız?

yardımlarınızı bekliyorum.
 
Kod:
Sub index()
For i = 1 To ActiveDocument.Tables.Count
  ActiveDocument.Tables(i).Select
  MsgBox "indeks no=" & i
Next
End Sub
 
çok güzel..çok teşekkürler..:)..valla çok pratiksiniz.

bir de paragraf olsun tablo içerisinde bir yazı olsun..bir yazı içindeki bir veya birkaç kelimeyi kalın, italik, altı çizgili vb. şekilde makro kod ile formatlamam mümkün müdür?
örneğin: Küçük kuş pencereme konmuş soğuktan tirtir titriyordu.
gibi bir metinde olduğu gibi istediğim bir kelimeyi, cümleyi makro ile formatlamak istiyorum.

Saygılarımla..
 
Kod:
Sub bulkoyuyap()
    a = InputBox("Bir kelime seçin")
    Set myRange = ActiveDocument.Content
    myRange.Find.Execute FindText:=a, Forward:=True
    If myRange.Find.Found = True Then myRange.Bold = True
End Sub
 
Word'de Makro ile Yazdır Komutu

Hamit Bey, yukarıda verdiğin kodla birşeyler yapmaya çalıştım ama pek işlevsel olmadı benim için..
Bu yukarıdaki kodu bir fonksiyona çevirip
mesela userformun kod alanında
verim = TextBox1.Text
kalinyap(verim)
gibi bi şekilde bir şey yapılabilir mi?


Hamit Bey, yine word ile alakalı ama başka bir konuda yardımınızı rica edeceğim.

Şimdi toplam 8 sayfa bir dokümanım var. ilk dört sayfasını arkalı önlü yazdırmak istiyorum. Yalnız bu ilk dört sayfanın arka sayfalarında 5nci sayfa bulunmalı sonra ki 6-7-8 nci sayfalar normal sayfa olmalı.

Sanırım bildiğim kadarıyla arkalı önlü yazdırma yazıcıyla alakalı olduğu için bu yukardaki işlem makro ile mümkün olmayacaktır. Ama yine de bir sorayım dedim.

Gerçekten böyle bir şey mümkün değil ise
makro ile bir userformda bir buton aracılığıyla
"Application.Dialogs(wdwdDialogFilePrintSetup).Show" bu komutu çalıştırıyorum ama Dosya>Yazdır diyalog penceresinden farklı bir kutu açılıyor.

Dosya>Yazdır diyalog penceresini nasıl açtırabilirim?

Teşekkürler...
 
Şimdi toplam 8 sayfa bir dokümanım var. ilk dört sayfasını arkalı önlü yazdırmak istiyorum.

Buna benzer bir örneği kendim kullanıyorum, ama iş burada size düşüyor. Şöyle ki, ilk sayfayı yazdırdıktan sonra bir mesaj kutusu çıkıyor ve size kağıdı ters çevir diyor.

Diğer sorunuz için bir form yapabiliriz.
 
Buna benzer bir örneği kendim kullanıyorum, ama iş burada size düşüyor. Şöyle ki, ilk sayfayı yazdırdıktan sonra bir mesaj kutusu çıkıyor ve size kağıdı ters çevir diyor.

Diğer sorunuz için bir form yapabiliriz.

Application.Dialogs(wdwdDialogFilePrint).Sho w diye kullanınca kodu normal yazdır diyalog kutusu çıkıyor. Arkalı önlü yazdır olayını artık manuel olarak düşüneceğim. Öneriniz için teşekkürler, başka bir uygulama da gerekebilir belki nasıl yapıldığını yine de paylaşırsanız çok sevinirim.

Şu yazıları kalın yapma olayını yani bulkoyyap() olayını fonksiyon gibi kullanabilir miyim? Nasıl yaparım?

Saygılarımla..
 
Function bulkoyyap(veri)
a = veri
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:=a, Forward:=True
If myRange.Find.Found = True Then myRange.Bold = True
MsgBox a
bulkoyyap = a
End Function

yukardaki fonksiyonu yazdım ve bu fonksiyonu userformda bulkoyyap(textbox1.text) olarak kullanıyorum
Ancak ilgili hücreye yazdırdığım cümledeki textbox1.text değerini kalın yapacağına tüm hücreyi kalın yapıyor.
Ben sadece tek kelimeyi kalın yapmak istiyorum.
Bir de bu kelime başka hücrelerdeki cümlelerde de geçtiğinden onlara etki etmesini sağlayamadım.
 
Selam arkadaşlar, keşki bu yaptıklarınızı eklediğiniz örnekte uygulasaydınızda bize nasıl çalıştığını görebilseydik.
 
Bir form oluşturun. İçine bir TextBox ve CommandButton ekleyin. Aşağıdaki kodu içine yapıştırın.
Kod:
Private Sub CommandButton1_Click()
    Set myRange = ActiveDocument.Content
    myRange.Find.Execute FindText:=TextBox1.Text, Forward:=True
    If myRange.Find.Found = True Then myRange.Bold = True
End Sub
 
tamam hamit bey şimdi pc başında değilim yarın dediğiniz şekilde bu kodu, bu şekilde uygularım. Sonucunu konuşuruz teşekkürler.
 
Hamit Bey, dediğiniz gibi de salt olarak bu şekilde buton oluşturup deneme yaptım. Tüm hücreyi değilde sadece textboxtaki kelimeyi kalın yaptı. Sadece kelimeyi kalın yapamama sorunu çözülmüş oldu. Teşekkürler..Yalnız aynı kelime farklı hücrelerde ve hatta başka tablo içerisindeki hücrelerde de mevcut, dolayısıyla ben CommandButton'a tıkladığımda textboxtaki kelimenin geçtiği heryerde kalın olmasını da istiyorum. Bu kod bunu yapmıyor sanırım???
 
Kod:
Private Sub CommandButton1_Click()
    Dim Found As Boolean
    Found = False
    Selection.HomeKey wdStory
    Selection.Find.ClearFormatting
    With Selection.Find
    Do While .Execute(findText:=TextBox1.Text, Forward:=True, _
    MatchWildcards:=False, MatchCase:=True, Wrap:=wdFindStop) = True
    Found = True
    Selection.Font.Bold = True
    Loop
    End With
    If Found = False Then
    MsgBox "Aradığınız kelime bu dokumanda yok"
    End If
End Sub
Not: Kodlar alıntıdır.
http://www.eggheadcafe.com/software/aspnet/31699318/word-2003-search-macro.aspx
 
Hamit Bey, teşekkürler bu kodlar iş görüyor..tüm dokumanı tarayıp bulduğunu kelimeyi kalın yazıyor.
Kelimeler = Array(kelime1, kelime2, kelime3, kelime4)

Dim Found As Boolean
For i = 0 To 3 ' Esas kullandığım şeklinde 25 kelime vardır
If Kelimeler(i) <> "" Then
Found = False
Selection.HomeKey wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(findText:=Kelimeler(i), Forward:=True, _
MatchWildcards:=False, MatchCase:=True, Wrap:=wdFindStop) = True
Found = True
Selection.Font.Bold = True
Loop
End With
End If
Next i
yukardaki kod gibi bir kod kullanıyorum.
Ancak 25 kelimem var ve her kelime için ayrı ayrı dokümanın tamamını tarıyor..o yüzden biraz yavaş oluyor. Buna bir çözüm bulabilir miyiz?
 
Belki, farklı bir kod yazılabilir ama şu anda açıkcası ben bir fikir üretemeyeceğim.
 
Teşekkürler Hamit Bey, araştırıyorum bende..umarım bulurum burada paylaşırım. Size de zahmet verdim bir çok..hakkınızı helal edin..
 
Geri
Üst