Çözüldü boşsa atla dolu ise kopyala kodu

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

muhsar

Normal Üye

Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
merhaba,ekte sunduğum tabloda dolu isimli resimde görüldüğü gibi veri varsa ilk sütunu işaretleyip dolu satırları seçip kopyalıyorum fakat boş isimli resimde olduğu gibi veri yoksa tüm sayfayı kopyalıyor.sadece veri olan satırları seç nasıl yapabilirim

kullandığım kod:(makrokaydet ile oluşturuldu)

Sub randevuaktar()
'
' randevuaktar Makro
'

'
Application.ScreenUpdating = False
Range("A2:J2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Workbooks.Open Filename:="F:\EVDE SAĞLIK\RANDEVU TAKİP.xlsx"
ActiveWindow.ScrollRow = 1
ActiveWindow.SmallScroll Down:=-15
Range("A" & Cells(Rows.Count, 2).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A5").Select
MsgBox "Aktarım Tamamlandı", vbInformation + vbMsgBoxRtlReading, "ExcelDestek.com"
Application.ScreenUpdating = True
End Sub
 
Sayın @muhsar bey,
Resimlerde bulunan bilgiler doğru ise silinmesi istirham edeceğim. Birinin bilgisini bu şekilde paylaşmayı pek doğru bulmuyorum.
Sorunuza gelecek olursak, dosya no sütununa göre kodlara müdahale edilebilir. Boş ise kopyala değilse kopyalama... Eğer dosyanızı paylaşırsanız daha hızlı bir sonuca ulaşabiliriz.
Kod yapısını değiştirmenizi tavsiye ederim. Select yapısı kodların çalışma hızını yavaşlatmaktadır. ( Kopyalama yerine direk veriyi atama şeklinde yapmak en temizi :))
 
merhaba,ekte sunduğum tabloda dolu isimli resimde görüldüğü gibi veri varsa ilk sütunu işaretleyip dolu satırları seçip kopyalıyorum fakat boş isimli resimde olduğu gibi veri yoksa tüm sayfayı kopyalıyor.sadece veri olan satırları seç nasıl yapabilirim

kullandığım kod:(makrokaydet ile oluşturuldu)

Sub randevuaktar()
'
' randevuaktar Makro
'

'
Application.ScreenUpdating = False
Range("A2:J2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Workbooks.Open Filename:="F:\EVDE SAĞLIK\RANDEVU TAKİP.xlsx"
ActiveWindow.ScrollRow = 1
ActiveWindow.SmallScroll Down:=-15
Range("A" & Cells(Rows.Count, 2).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A5").Select
MsgBox "Aktarım Tamamlandı", vbInformation + vbMsgBoxRtlReading, "ExcelDestek.com"
Application.ScreenUpdating = True
End Sub
Yönetimden rica etsem resimleri silebilirmisiniz, bilgileri değiştirmeyi ihmal etmişim
 
Yönetimden rica etsem resimleri silebilirmisiniz, bilgileri değiştirmeyi ihmal etmişim


hocam veri giriş randevu sayfasında bulunan verileri randevu aktar isimli makro ile randevu takip kitabına kopyalamaya çalışıyorum,veri varsa sorun yok yukarıdaki kodlar kopyalıyor fakat eğer sayfa boşsa ve sadece formüler varsa sayfanın tamamını alıyor ve formülleri alıyor.benim yapmak istediğim dosya nosu dolu olan satırları randevu takip kitabının son dolu satırın devamına kopyalaması.

ilginiz için teşekkür ederim
 

Ekli dosyalar

  • çalışmaRANDEVU TAKİP.rar
    36.7 KB · Görüntüleme: 16
  • SonDoluHücre.xlsx
    8.6 KB · Görüntüleme: 5
Merhaba Sayın @muhsar .
Bence sorunuzda bir miktar belirsizlik var.
A sütunundaki sıra numaraları formül ile mi elde ediliyor yoksa elle veya makro kod ile mi yazılıyor bu net değil,
ayrıca, YAPILACAK İŞLEM başlıklı sütunda, arada boş hücre kalarak veri girişi yapılıp yapılmadığı da net değil.
Yani belgeyi kullanış tarzınız netleştirilmelidir.

YAPILACAK İŞLEM başlıklı sütunda arada boşluk olmayacak şekilde veri girişi yapılıyorsa aşağıdaki şekilde istenilen gerçekleşecektir.
VBA:
Görüntülemek için giriş yapmalısınız.
(17 satır)
 
Merhaba Sayın @muhsar .
Bence sorunuzda bir miktar belirsizlik var.
A sütunundaki sıra numaraları formül ile mi elde ediliyor yoksa elle veya makro kod ile mi yazılıyor bu net değil,
ayrıca, YAPILACAK İŞLEM başlıklı sütunda, arada boş hücre kalarak veri girişi yapılıp yapılmadığı da net değil.
Yani belgeyi kullanış tarzınız netleştirilmelidir.

YAPILACAK İŞLEM başlıklı sütunda arada boşluk olmayacak şekilde veri girişi yapılıyorsa aşağıdaki şekilde istenilen gerçekleşecektir.
VBA:
Görüntülemek için giriş yapmalısınız.
(17 satır)


merhaba hocam;veri girişte a sütununa dosya nosunu manuel olarak yazıyorum diğer bilgileri düşeyara formülü ile getiriyorum.benim yapmak istediğim eğer satırda bilgi varsa kopyala yoksa işlemi tamamla.verileri arada boşluk olmadan giriyoruz.

formülü bu hali ile denediğimde veri olsada olmasada aktarılacak veri yok diye hata veriyor
 
Verdiğim kod aktarılacak veri olup olmadığına dair kontrolü,
YAPILACAK İŞLEM başlıklı, veri doğrulama uygulanmış sütundaki son dolu hücrenin satır numarasına göre yapıyor durumda.

İsterseniz, son cevabınızdaki "SATIRDA BİLGİ VARSA" kısmını biraz netleştirin.
Ben şöyle düşündüm, eğer A sütununa elle yazarak numara veriyorsanız (numara verilmiş satır aktarılacak, diğerleri aktarılmayacak)
ve A sütununda arada boş hücre olmaksızın bu numaralar veriliyorsa son veri satırını A sütunu üzerinden kontrol ettirmek mümkün demektir.

-- Ya; verdiğim koddaki sonsat = Cells(Rows.Count, "I").End(3).Row şeklindeki satırı
sonsat = WorksheetFunction.Max(Sheets("RANDEVU_DEFTERİ").[A:A])+1 olarak değiştirerek deneyin,
-- ya da hatalı dediğiniz haliyle, şu satırların aktarılması gerekiyor/şu nedenle şu satırların aktarılmaması gerekiyor gibi
açıklama ekleyerek belgenizi farklı kaydedip foruma ekleyin bir kontrol yapayım.
 
Verdiğim kod aktarılacak veri olup olmadığına dair kontrolü,
YAPILACAK İŞLEM başlıklı, veri doğrulama uygulanmış sütundaki son dolu hücrenin satır numarasına göre yapıyor durumda.

İsterseniz, son cevabınızdaki "SATIRDA BİLGİ VARSA" kısmını biraz netleştirin.
Ben şöyle düşündüm, eğer A sütununa elle yazarak numara veriyorsanız (numara verilmiş satır aktarılacak, diğerleri aktarılmayacak)
ve A sütununda arada boş hücre olmaksızın bu numaralar veriliyorsa son veri satırını A sütunu üzerinden kontrol ettirmek mümkün demektir.

-- Ya; verdiğim koddaki sonsat = Cells(Rows.Count, "I").End(3).Row şeklindeki satırı
sonsat = WorksheetFunction.Max(Sheets("RANDEVU_DEFTERİ").[A:A])+1 olarak değiştirerek deneyin,
-- ya da hatalı dediğiniz haliyle, şu satırların aktarılması gerekiyor/şu nedenle şu satırların aktarılmaması gerekiyor gibi
açıklama ekleyerek belgenizi farklı kaydedip foruma ekleyin bir kontrol yapayım.
ÇOK TEŞEKKÜR EDERİM;bunuda yaptım.elinize sağlık
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
7
Geri
Üst