• DİKKAT

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

Macro kodu yapıştırırken tıkladığım yere yapıştırsın

yyhy

Altın Üye
Katılım
3 Aralık 2005
Mesajlar
946
Excel Vers. ve Dili
Microsoft Office 2021 TR
Microsoft 365 TR
Sub Veri_01()
'
' Sub Veri_01()
'

'
Range("B100:W100").Select
Selection.Copy
Sheets("Veri").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G9").Select
End Sub

Kırmızı renkli yerdeki G9 hücresi değilde mouse ile seçtiğim yere yapıştırabilmem için kırmızı puntolu yere ne yazılabilir?
 
Kodları bu şekilde deneyin. Hangi hücre seçliyse oraya yapıştırır. Eğer kopyaladığınız veri başka bir sayfada ise ilk satırı şu şekilde düzenlemeniz gerekir: Sheets("sayfaadi").Range("B100:W100").Copy

Kod:
Range("B100:W100").Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
 
Son düzenleme:
Bu kod bulunulan sayfada B100:W100 aralığını kopyalayıp Veri sayfasında seçili hücreye yapıştırıyor ve sonra G9 hücresini seçiyor. G9'a yapıştırma yapmıyor, Veri sayfası açıldığında hangi hücre seçiliyse oraya yapıştırıyor.

Seçili hücreye yapışması için başka bir makro kullanmanız gerekir:

PHP:
Sub yapistir()
    If Application.CutCopyMode = True Then
        ActiveSheet.Paste
    End If
End Sub

Bu kod eğer herhangi bir veri kopyalanmışsa seçili hücreye yapıştırma işlemi yapar.
 
Sayın Mahmut Kök ve Yusuf44 öncelikle yardımlarınız için teşekkür ederim. Konuyu biraz açmam gerekirse; sütuna gireceğim veriler sabit veriler olmayıp değişken veriler ile birlikte sabit verilerde giriyorum. 7 adet sabit verim var uzun olduğu için yazmam veya sabitler sayfamdan kopyalayıp getirmem biraz zor ve zaman alıyor. Oradaki verileri resmini de attığım 7 butona makro ile bağlayıp tıklamak suretiyle kolay girmek. Aşağıdaki şekilde macroyu bilgileriniz doğrultusunda düzenledim. Şu hali ile çalışıyor acaba gördüğünüz bir eksik tarafı var mı?
Yapacağım işlem; Sabitler sayfasında 7 adet sabit verim var Veri sayfama gireceğim sabitler sayfasındaki 7 adet veriden ise Veri sayfası G sütunundaki başlıkta bulunan 1 den 7 ye kadar olan verileri butona tıklamak suretiyle kolayca yazmak.
Sub Veri_02()
'
' Veri_02 Makro
'

'
Sheets("Sabitler").Select
Range("B100:W100").Select
Selection.Copy
Sheets("Veri").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
 

Ekli dosyalar

  • Veri doğrulama olmadan macro ile verileri kolay yapıştırmak.png
    Veri doğrulama olmadan macro ile verileri kolay yapıştırmak.png
    11.5 KB · Görüntüleme: 6
B100:W100 ile ekran görüntüsündeki işlemin ne ilgisi var anlamadım.

Lütfen örnek excel dosyası paylaşarak ne yapmak istediğinizi belirtiniz.
 
Sayın YUSUF44 B100:W100 sabitler sayfasında birleştirilmiş hücredeki verinin bulunduğu yer idi ama sonradan birleştirilmiş hücre yerine tek hücre olarak değiştirdim (B100). Örnek dosyayı da ekliyorum. Yalnız yapıştırma işleminde macro çalışınca sayfada kırpma oluyor sebebi ne olabilir veya farklı bir yöntemi var mıdır?
 

Ekli dosyalar

Yapmak istediğiniz işleme göre çok uzun yöntemler kullandığınızı görüyorum. O kadar farklı makrolara ve uygulamalara gerek yok bence.

Aşağıdaki kodları Veri sayfasının kod bölümüne (sayfa adına sağ tıklayıp kod görüntüle deyince açılan sayfaya) yapıştırıp deneyin. Bu sayfada F3:F5003 aralığında değişiklik yaptığınızda kodlar çalışır:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [F3:F5003]) Is Nothing Then Exit Sub
If Selection.Count > 1 Then Exit Sub
If Target = "" Then
    Target.Offset(0, 1).ClearContents
ElseIf Target = 1 Or Target = 2 Or Target = 3 Or Target = 4 Or Target = 5 Or Target = 6 Or Target = 7 Then
    Target.Offset(0, 1) = WorksheetFunction.Index(Sheets("Sabitler").[C100:C106], Target)
Else
    MsgBox "Lütfen kabahat türü olarak 1-7 arası sayı giriniz!", vbExclamation
End If
End Sub

Hatta kodsuz olarak G3 hücresinde aşağıdaki formül de işinizi görür:

=EĞER(F3="";"";İNDİS(Sabitler!$C$100:$C$106;F3))

Yukarda verdiğim kod zaten bu formülün kod halidir.
 
Teşekkür ederim sayın YUSUF44 şuan cep telefonundan yazıyorum. PC de uygulayacağım.
 
Sayın YUSUF44 F Sütunu boş koyarsak kod güzel çalışıyor. Veri kitabımda f sütunu da dolu, verilerim var. Acaba G sütununa 1-7 ye kadar aşağıya doğru kabahat numarası girmiş olsak kod çalışmaz mı? Kodu yazdıktan sonra veri aynı hücreye yazar mı?
 
Son düzenleme:
Şunu mu istiyorsunuz?

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G3:G5003]) Is Nothing Then Exit Sub
If Selection.Count > 1 Then Exit Sub
If Target = 1 Or Target = 2 Or Target = 3 Or Target = 4 Or Target = 5 Or Target = 6 Or Target = 7 Then
    Application.EnableEvents =False
    Target = WorksheetFunction.Index(Sheets("Sabitler").[C100:C106], Target)
    Application.EnableEvents=True
Else
    MsgBox "Lütfen kabahat türü olarak 1-7 arası sayı giriniz!", vbExclamation
End If
End Sub
 
Sayın YUSUF44 şimdi butona falan da gerek kalmadan bu şekli ile güzel aynı hücrede işlemi bitiriyor. Emeğinize sağlık. İhtiyaca cevap verdi.
 
Geri
Üst