satır bulma

Katılım
27 Ocak 2006
Mesajlar
5
merhaba arkadaşlar, ben excelde bi makro yazdım daha yeniym bu konuda..
yazdığım makroda şunu istiyorum, D3 hücresine veritabınından bilgileri getiriyor, ancak makkroyu tekrar çalıştırdığımda önce D3 hücresi ile örneğin D65 hücresine kadar silmesini istiyorum, ama bu silme işlemi kayıt sayısı ne kadar girilmişse, o kadarını bulup o hücreyi silecek...
yani örnek verecek olursak, D3 (Sabit) hücresi ile D20 ye kadar kayıt listelendi, butona tekrar bastığımda, D3 ile D10 a kadar listeliyor, önceki kayıt (D11 ile D20) hani D3den D20 ye kadar kayıt getirmişti, D10 a kadar zaten üzerine yazıyor ama D11 ile D20 arası kayıt duruyor, nasıl yapabilirim?????? çok acil olursa sevinirim
herhalde sorunu anlatabilmişimdir :)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Eğer aktarım yaptığınız D sütununda başka bir veri yoksa aktarım yaptığınız kodların başına aşağıdaki kodu eklerseniz ilk olarak D sütununu temizler ve aktarım yapar.

Sheets("Sayfaadınız").Range("D3:D65536").ClearContents
 
Katılım
27 Ocak 2006
Mesajlar
5
hayır :)
ben problemi bi daha anlatayım, sadece kayıt sayısını silecek, yani D3 ile D15 (MESELA) ne kadar kayıt getirdiyse onu silecek
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Birde aşağıdaki gibi denermisiniz.


Son = Sheets("Sayfaadınız").Range("D65536").End(3).Row
Sheets("Sayfaadınız").Range("D3:D" & Son).ClearContents
 
Katılım
27 Ocak 2006
Mesajlar
5
hayır ya yine olmadı, ben size kodu gönereyim de öyle bakın :)
Function SonSatir(SAYFA As String) As Long
On Error Resume Next
Sheets(SAYFA).Select
SonSatir = ActiveSheet.Cells.Find(What:="*", _
After:=ActiveSheet.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
End Function



Sub CKLIST()
Dim numara As String
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim SonSat As Integer, i As Integer, Son As Integer





Cnn.ConnectionString = "Provider=IBMDA400;Data Source=10.10.0.1;"
Cnn.Open

Rst.ActiveConnection = Cnn
Rst.CursorLocation = adUseClient
Rst.CursorType = adOpenStatic
Rst.LockType = adLockReadOnly
Rst.Open "SELECT TESDATS.DISAD00F.TBLELE AS BRUT FROM TESDATS.DISAL00F INNER JOIN TESDATS.CUSED00F ON TESDATS.CUSED00F.LCDORD = TESDATS.DISAL00F.JCDOR2 AND TESDATS.CUSED00F.LPRNBR = TESDATS.DISAL00F.JPRNBR INNER JOIN TESDATS.DISAD00F ON TESDATS.DISAD00F.TCDAWR = TESDATS.DISAL00F.JCDAWR " + _
" WHERE TESDATS.CUSED00F.LOUTLN = '120371'"



Son = Sheets("Sayfa1").Range("D65536").End(3).Row
Sheets("Sayfa1").Range("C3:C" & Son).ClearContents







End Sub
 
Katılım
25 Mayıs 2005
Mesajlar
44
Excel Vers. ve Dili
Excel 2007 - Türkçe
COST_CONTROL' Alıntı:
Birde aşağıdaki gibi denermisiniz.


Son = Sheets("Sayfaadınız").Range("D65536").End(3).Row
Sheets("Sayfaadınız").Range("D3:D" & Son).ClearContents
Sn. COST CONTROL,
Gönderdiğiniz kodlamadaki ".....End(3).Row" ifadesinde parantez içinde yer alan 3 rakamı neyi ifade etmektedir?
Parantez içerisine 1, 2, veya 4 yazdığımda 65536 sonucunu alıyorum; 0 veya 4'ten büyük bir değer yazdığımda ise hata mesajı alıyorum.
:?
Anlamama yardımcı olabilirseniz sevinirim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Verdiğim kodları aşağıdaki gibi uygularsanız butona bastığınızda ilk olarak veri olan alanı temizler sonra sizin işlemleriniz devam eder.

Sn. cout(h)ane

Son = Sheets("Sayfaadınız").Range("D65536").End(3).Row
Bu bölümdeki 3 rakamı Xlup ifadesinin rakamsal karşılığıdır. Yaptığı işlem ise D65536 hücresinden yukarıya doğru arama yapar ve ilk dolu hücreyi bulur.

Sub CKLIST()
Dim numara As String
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim SonSat As Integer, i As Integer, Son As Integer
Son = Sheets("Sayfaadınız").Range("D65536").End(3).Row
Sheets("Sayfaadınız").Range("D3:D" & Son).ClearContents
 
Üst