• DİKKAT

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

Bir sonraki boş hücreyi bularak veri yapıştırma

Katılım
20 Aralık 2010
Mesajlar
10
Excel Vers. ve Dili
İngilizce Excel 2003
Merhaba,

Benim uğraştığım çalışma ekte de görebileceğiniz üzere A2 ve B2 hücresine elle girilen verilerin, A9 hücresinden başlayan bir tablo içerisine yapıştırması üzerine. Ancak işin zor yanı, atanacak makro A9'dan başlayan tabloda aşağıya doğru ilk boş hücreyi tespit ederek yapıştırması gerekiyor. Yani örnektede göreceğiniz üzere diyelimki A13:B13 hücresindeki verileri sildik. Bir dahaki ilk veri girişimizde önceliği bu hücreye vererek buraya veri yapıştırması gerekiyor.
İngilizce Excel 2003 kullandığım için şöyle bir ön çalışma yaptım :

Sub InsertMacro()

Range("A2:B2").Select
Selection.Copy
Range("A65535").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

End Sub

Ancak bu makro enson kullanılan hücreyi bularak bunun altına yein veriyi yapıştırma yoluyla ilerliyor. Yani tabloda yukarıda bir veri silinirse silinen yer boş kalıyor.
Yardımlarınızı bekliyorum.
Şimdiden teşekkürler.
 

Ekli dosyalar

Selam,
2003 formatında yeniden güncelleyebilirseniz belki yardımcı olabilirim.
İyi çalışmalar.
 
Şu anda evde çalıştığım makinede Excel 2007 yüklü o yüzden şu anda yapamam.
.End(xlUp) ve .End(xlDown) komutları üzerinde denemeler yaptım ama hiçbiri istediğim gibi olmadı.
 
Şu anda evde çalıştığım makinede Excel 2007 yüklü o yüzden şu anda yapamam.
.End(xlUp) ve .End(xlDown) komutları üzerinde denemeler yaptım ama hiçbiri istediğim gibi olmadı.
selam,
Zaten 2007 yüklü Ofis Programı var ise excel ile 2003 formatına çevirebiliyorsunuz. yani şimdi çevirebilirsiniz.
İyi çalışmalar.
 
Merhaba,

atanacak makro A9'dan başlayan tabloda aşağıya doğru ilk boş hücreyi tespit ederek yapıştırması gerekiyor. Yani örnektede göreceğiniz üzere diyelimki A13:B13 hücresindeki verileri sildik. Bir dahaki ilk veri girişimizde önceliği bu hücreye vererek buraya veri yapıştırması gerekiyor.
İngilizce Excel 2003 kullandığım için şöyle bir ön çalışma yaptım :
Yardımlarınızı bekliyorum.
Şimdiden teşekkürler.

Selam,
aşağıdaki kodu dener misiniz?

Kod:
Sub ekle()

son = Range("A65536").End(3).Row

If son < 9 Then
Cells(9, "A") = Cells(2, "A")
Cells(9, "B") = Cells(2, "B")
Else
Cells(son + 1, "A") = Cells(2, "A")
Cells(son + 1, "B") = Cells(2, "B")
End If

End Sub
 
Denedim ancak bu da enson kullanılan hücreden sonraki satıra yapıştırıyor veriyi. Yani arada boş hücre varsa onu atlıyor. Benim istediğim ise ilk önce tabloda ilk boş olan hücreyi bulup yapıştırması.
 
Denedim ancak bu da enson kullanılan hücreden sonraki satıra yapıştırıyor veriyi. Yani arada boş hücre varsa onu atlıyor. Benim istediğim ise ilk önce tabloda ilk boş olan hücreyi bulup yapıştırması.

Selam,
aşağıdaki kodları deneyiniz.
9. satırdan en son satıra kadar boş satırı arar. ibulur ise ilk boş satıra veriyi yapıştırır. boş satır yok ise en son dolu satırdan sonraki ilk boş satıra yapıştırır.
Kod:
Sub ekle()

son = Range("A65536").End(3).Row

If son < 9 Then
Cells(9, "A") = Cells(2, "A")
Cells(9, "B") = Cells(2, "B")
Exit Sub

End If

For i = 9 To son

If Cells(i, "A") = "" Then

Cells(i, "A") = Cells(2, "A")
Cells(i, "B") = Cells(2, "B")
Exit Sub
End If

Next

Cells(son + 1, "A") = Cells(2, "A")
Cells(son + 1, "B") = Cells(2, "B")
End Sub
 
Son düzenleme:
Sayın Ergün Güler,

Ellerinize sağlık tam olarak aradığım şeyi yapmışsınız. Tablomu sağa doğru yeni hücrelerle ilerlettikçe kodun içine de yeni sütunların kodunu ilave ederek tamamladım. Gerçekten muhteşem olmuş.
Şimdi son bir arayışım var aslında. O da her satırın yanına koyacağım checkbox ile o satırdaki verileri silmeyi sağlamak.
Yani verdiğiniz kod ile bilgileri hücrelere yapıştırıyorum ama silmek istediğimde ilgili satırın başındaki checkbox'ı (veya checkbox'ları) seçili hale getirip, makro ile seçili satırların hepsini aynı anda silmek istiyorum.
 
Sayın Ergün Güler,

Ellerinize sağlık tam olarak aradığım şeyi yapmışsınız. Tablomu sağa doğru yeni hücrelerle ilerlettikçe kodun içine de yeni sütunların kodunu ilave ederek tamamladım. Gerçekten muhteşem olmuş.
Şimdi son bir arayışım var aslında. O da her satırın yanına koyacağım checkbox ile o satırdaki verileri silmeyi sağlamak.
Yani verdiğiniz kod ile bilgileri hücrelere yapıştırıyorum ama silmek istediğimde ilgili satırın başındaki checkbox'ı (veya checkbox'ları) seçili hale getirip, makro ile seçili satırların hepsini aynı anda silmek istiyorum.

Selam,
C sütununun satırında mı silme işlmei yapmak istiyorsunuz? ve burada işaret koyup, işaretli olanları mı silmek istiyorsunuz?
Öyle ise bekleyiniz...
 
Sayın Ergün Güler,

Ellerinize sağlık tam olarak aradığım şeyi yapmışsınız. Tablomu sağa doğru yeni hücrelerle ilerlettikçe kodun içine de yeni sütunların kodunu ilave ederek tamamladım. Gerçekten muhteşem olmuş.
Şimdi son bir arayışım var aslında. O da her satırın yanına koyacağım checkbox ile o satırdaki verileri silmeyi sağlamak.
Yani verdiğiniz kod ile bilgileri hücrelere yapıştırıyorum ama silmek istediğimde ilgili satırın başındaki checkbox'ı (veya checkbox'ları) seçili hale getirip, makro ile seçili satırların hepsini aynı anda silmek istiyorum.
Selam,
Dosyanız ektedir. İnceler misiniz?
Ekleme makrosunda hata vardı, düzeltildi. yenisi için sayfa üzerinde formdan oluşturduğunuz EKLE' butonuna aşağıdaki makrıyu atayınız.

Kod:
Sub ekle()

son = Range("A65536").End(3).Row

If son < 9 Then
Cells(9, "A") = Cells(2, "A")
Cells(9, "B") = Cells(2, "B")
Exit Sub

End If

For i = 9 To son

If Cells(i, "A") = "" Then

Cells(i, "A") = Cells(2, "A")
Cells(i, "B") = Cells(2, "B")
Exit Sub
End If

Next

Cells(son + 1, "A") = Cells(2, "A")
Cells(son + 1, "B") = Cells(2, "B")
ActiveSheet.Hyperlinks.Add anchor:=Cells(son + 1, "C"), Address:="", SubAddress:="", _
ScreenTip:="Silmek için Tıklayınız", TextToDisplay:=""
End Sub

C sütununda silmek istediğiniz satıra tıklayarak seçim yapmak için, ilgili sayfanın kod sayfasına
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("C9:C65536")) Is Nothing Then Exit Sub

If Target.Count > 1 Then Exit Sub

If Target <> "SİLİNECEK" Then

ActiveSheet.Hyperlinks.Add anchor:=Target, Address:="", SubAddress:="", _
ScreenTip:="Silmek için Tıklayınız", TextToDisplay:="SİLİNECEK"
Range("A" & Target.Row & ":C" & Target.Row).Interior.ColorIndex = 3 'Kırmızı
Range("C" & Target.Row).Font.Bold = True
Range("C" & Target.Row).Font.ColorIndex = 2

Cells(Target.Row, "D").Select

ElseIf Target.Value = "SİLİNECEK" Then

ActiveSheet.Hyperlinks.Add anchor:=Target, Address:="", SubAddress:="", _
ScreenTip:="Silmeyi Kaldır", TextToDisplay:="--"
Range("A" & Target.Row & ":C" & Target.Row).Interior.ColorIndex = xlNone 'Renk yok
Range("C" & Target.Row).Font.Bold = False
Range("C" & Target.Row).Font.ColorIndex = 0

Cells(Target.Row, "D").Select
End If

End Sub

seçtiklerini silmek için sayfaya bir formdan bir buton oluşturunuz ve aşağıdaki makroyu atayınız.
Kod:
Sub sil()
son = Range("C65536").End(3).Row
say = 0
If son < 9 Then
MsgBox "Silinecek Satır Bulunamadı", vbCritical, "UYARI"
Exit Sub
Else

For i = 9 To son

If Cells(i, "C") = "SİLİNECEK" Then
say = say + 1
Range("A" & i & ":C" & i).Clear
End If

Next

End If

MsgBox say & " Adet Satır Bilgisi Silindi", vbInformation, "SİLME İŞLEMİ"

End Sub
 

Ekli dosyalar

İşin aslı bunu hücreye tıklayarak değil de bir checkbox ile yapmayı düşünüyordum, çünkü veri girilecek sütun sayısı sağa doğru artabiliyor yapacağım çalışmada. Checkbox'ı işaretleyip makroyu çalıştırınca, bütün satırı silmesini isteyeceğim için C'yi seçerek sildirmek pek işimi gelmiyor işin aslı. Ama bu çözümünüzü de çok beğendim,emeğinize teşekkürler.
 
yardım . . .

ARKADAŞLAR MERHABA.
bu sistemi kendi dosyama uygulamaya çalıştım ama bir türlü başarılı olamadım.
birleştirilmiş hücrelerden oluşan yan yana 9 hücreyi alttaki listeye eklemek istiyorum ama başaramadım.
yardımcı olursanız sevinirim.
 

Ekli dosyalar

ARKADAŞLAR MERHABA.
bu sistemi kendi dosyama uygulamaya çalıştım ama bir türlü başarılı olamadım.
birleştirilmiş hücrelerden oluşan yan yana 9 hücreyi alttaki listeye eklemek istiyorum ama başaramadım.
yardımcı olursanız sevinirim.

Selam,
Dosyanıza yarın bakarım. 7.satırdaki bilgileri en son boş satıra eklemek istiyorsunuz öyle değil mi?
 
evet.
7. satırdaki verileri 11 veya 11. satırdan sonraki ilk boş satıra eklemesini istiyorum.
 
hocam örnek2 dosyasında bir ricam daha olacak.
"liste" sayfanındaki buton 7. satırı 11 ve sonrasındaki boş satıra eklerken,
acaba bu butonu "giriş" sayfasına koyabilir miyiz?
*yani buton "giriş" sayfasında olacak ve "liste" sayfasındaki 7. satırı 11. satırdan sonrasına ekleyecek.
*yada buton "giriş" sayfasında olacak ve "giriş" sayfasındaki bir satırı "liste" sayfasındaki 11. satırdan sonrasına ekleyecek.

bu iki işlemde de buton "giriş" sayfasında, ekleyeceği satır "liste" sayfasında olacak.
bunlardan hangisi daha mantıklı ve daha uygulanabilir. tabi bide nasıl yapılacağı hakkında bilgi verirseniz sevinirm?
 

Ekli dosyalar

hocam örnek2 dosyasında bir ricam daha olacak.
"liste" sayfanındaki buton 7. satırı 11 ve sonrasındaki boş satıra eklerken,
acaba bu butonu "giriş" sayfasına koyabilir miyiz?
*yani buton "giriş" sayfasında olacak ve "liste" sayfasındaki 7. satırı 11. satırdan sonrasına ekleyecek.
*yada buton "giriş" sayfasında olacak ve "giriş" sayfasındaki bir satırı "liste" sayfasındaki 11. satırdan sonrasına ekleyecek.

bu iki işlemde de buton "giriş" sayfasında, ekleyeceği satır "liste" sayfasında olacak.
bunlardan hangisi daha mantıklı ve daha uygulanabilir. tabi bide nasıl yapılacağı hakkında bilgi verirseniz sevinirm?
Selam,
Kod:
Sub listeye_ekle()
Dim liste As Worksheet
Dim son As Long
Dim sat As Long

Set liste = ThisWorkbook.Sheets("liste")
son = liste.Range("I65536").End(3).Row

If son < 11 Then sat = 11 Else sat = son + 1

If liste.Cells(7, "I") = "" Or liste.Cells(7, "N") = "" Then
MsgBox "Sayın " & Environ("Username") & "," & vbLf _
& "Lütfen Ad-soyad bilgisini giriniz!", vbCritical, "EKSİK VERİ GİRİŞİ"
Exit Sub
End If
liste.Cells(sat, "I") = liste.Cells(7, "I")
liste.Cells(sat, "N") = liste.Cells(7, "N")
liste.Cells(sat, "R") = liste.Cells(7, "R")
liste.Cells(sat, "X") = liste.Cells(7, "X")
liste.Cells(sat, "Z") = liste.Cells(7, "Z")
liste.Cells(sat, "AB") = liste.Cells(7, "AB")
liste.Cells(sat, "AE") = liste.Cells(7, "AE")
liste.Cells(sat, "AH") = liste.Cells(7, "AH")
liste.Cells(sat, "AN") = liste.Cells(7, "AN")

liste.Cells(7, "I") = ""
liste.Cells(7, "N") = ""
liste.Cells(7, "R") = ""
liste.Cells(7, "X") = ""
liste.Cells(7, "Z") = ""
liste.Cells(7, "AB") = ""
liste.Cells(7, "AE") = ""
liste.Cells(7, "AH") = ""
liste.Cells(7, "AN") = ""

End Sub
 
hocam kodu butona ekledim ama verileri girince listeye eklemiyor.
bi kontrol edebilir misiniz?
 
Geri
Üst