Soru Hatayı bulamadım

Katılım
20 Şubat 2012
Mesajlar
15
Excel Vers. ve Dili
2007 türkçe
Sub izin ()
Set kaynak = sheets("veri_ekle")
Set hedef =shhets ("tarih")
Dim i as integer
Dim y as integer
Dim satir as integer
Dim x as integer

Y=kaynak. Cells(10,2).value
Satir=kaynak.cells(1,8).value
X=2
For i = satir to y
If hedef. Cells(1,x).value="" then
Hedef. Cells(1,x).value=kaynak.cells(4,2).value
Else
Cells(1,x+1).value=kaynak.cells(4,2).value
End if
Next i
End sub
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,715
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

3 ncü satırdaki Set hedef =shhets ("tarih") kodundaki shhets değil sheets olmalı sanırım.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

y değeri satir değerinden küçük olduğundan atlıyordur. Bu iki değişkenin aldığı değerleri kontrol ediniz.
 
Katılım
20 Şubat 2012
Mesajlar
15
Excel Vers. ve Dili
2007 türkçe
Merhaba,

y değeri satir değerinden küçük olduğundan atlıyordur. Bu iki değişkenin aldığı değerleri kontrol ediniz.
y izin gün sayısı 3, satir ise hedefte yazılmak istenen satir 15 . büyük olma sorununu nasıl çözeriz
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Nasıl çözeriz den önce yapmak istediğinizi açıklamanız gerekir.

Sonuçta for i döngüsü ile 15 ile 3 arasında döngü kuramazsınız için step kullanarak döngüyü tersten başlatabilirsiniz. Fakat sizin istediğiniz bu mu?
y değer satir dan küçük olursa ne olacak olmazsa ne olacak vs...
 
Katılım
20 Şubat 2012
Mesajlar
15
Excel Vers. ve Dili
2007 türkçe
Nasıl çözeriz den önce yapmak istediğinizi açıklamanız gerekir.

Sonuçta for i döngüsü ile 15 ile 3 arasında döngü kuramazsınız için step kullanarak döngüyü tersten başlatabilirsiniz. Fakat sizin istediğiniz bu mu?
y değer satir dan küçük olursa ne olacak olmazsa ne olacak vs...
istediğim tam olarak şu:
kaynak. b4 hücresine girilen sicili, hedef te istenilen satırda (kaynak H1 hücresinde verilen sayı misal 15) c15 e yazdırmak c15 dolu ise d15 e yazdırmak, ama kaynak b10 daki sayı kadar alt alta devam ettirmek.
şimdiden teşekkürler.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Alt alta mı yan yana mı. Çünkü C15 dolu ise D15 yazsın diye not düştünüz. Notunuza göre ilerleyerek yana yazdırdım. Ve yazdırmaya 3. sütunda yani C sütunundan başladım. ( notunuza istinaden). Ayrıca daha anlaşılır olsun diye bazı bölümlerdeki cells yerine range kullandım. Ayrıca arada boş hücreler olmadan veriler sıralı aktarılıyor sanırım.
Deneyiniz istediğiniz bu değilse daha detaylı bilgi veriniz.
Kod:
Sub izin()

    Dim kaynak As Worksheet, Hedef As Worksheet
    Dim i As Integer, y As Integer, satir As Integer, x As Integer, sut As Integer

    Set kaynak = Sheets("veri_ekle")
    Set Hedef = Sheets("tarih")

    y = kaynak.Range("B10").Value
    satir = kaynak.Range("H1").Value
    sut = Cells(satir, Columns.Count).End(xlToLeft).Column + 1
    x = 3
    sut = Application.Max(sut, x)
    
    For i = 1 To y
        Hedef.Cells(satir, sut + i - 1).Value = kaynak.Range("B4").Value
    Next i
    
End Sub
 
Katılım
20 Şubat 2012
Mesajlar
15
Excel Vers. ve Dili
2007 türkçe
hedef sayfasında amacım: 22222 sicilli personele 15.01.2022 den geçerli 4 gün izin yazıldı (4 kaynak B10 DA) (sicilde B4 te 22222) (satir sayisi 15 kaynak H1 de) 15 İinde izninin son günü olan 11111 sicillli başka personel var.

SATIR SAYISI ---------A --------------- -------B---------------------- C --------------D

15 ------------ 15.01.2022 -------------11111(SİCİL) -------------- 22222
16 ------------ 16.01.2022 ------------- 22222
17 ------------ 17.01.2022 ------------- 22222
18 ------------ 18.01.2022 ------------- 22222

izin ekle dendiğinde hedefe ekleme şeklimiz bu şekilde olsun istiyorum. yani 15.01.2022 tarihini sorguladığımda kaç kişi izinde ise hedef 15. satırdan saydırıp çekeceğim. A sutununda tarihler mevcut zaten. kaynak H1 e aradığım tarihin satır sayısı getiriyorum.
 
Son düzenleme:

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Rica etsem örnek excel dosyası ekleyip açıklar mısınız.


.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Sanırım istediğiniz bu. Bu arada H1 yerine B9 hücresini kullandım.
Kod:
Sub ekle()

    Dim kaynak As Worksheet, Hedef As Worksheet
    Dim i As Integer, y As Integer, satir As Integer, x As Integer, sut As Integer

    Set kaynak = Sheets("veri_ekle")
    Set Hedef = Sheets("tarih")

    y = kaynak.Range("B10").Value '3
    'satir = kaynak.Range("H1").Value '15
    satir = WorksheetFunction.Match(kaynak.Range("B9"), Hedef.[A:A], 0)
    
    For i = 1 To y
        x = 3
        sut = Hedef.Cells(satir + i - 1, Columns.Count).End(xlToLeft).Column + 1
        sut = Application.Max(sut, x)
        Hedef.Cells(satir + i - 1, sut).Value = kaynak.Range("B4").Value
    Next i
    
End Sub
 
Katılım
20 Şubat 2012
Mesajlar
15
Excel Vers. ve Dili
2007 türkçe
Sanırım istediğiniz bu. Bu arada H1 yerine B9 hücresini kullandım.
Kod:
Sub ekle()

    Dim kaynak As Worksheet, Hedef As Worksheet
    Dim i As Integer, y As Integer, satir As Integer, x As Integer, sut As Integer

    Set kaynak = Sheets("veri_ekle")
    Set Hedef = Sheets("tarih")

    y = kaynak.Range("B10").Value '3
    'satir = kaynak.Range("H1").Value '15
    satir = WorksheetFunction.Match(kaynak.Range("B9"), Hedef.[A:A], 0)
   
    For i = 1 To y
        x = 3
        sut = Hedef.Cells(satir + i - 1, Columns.Count).End(xlToLeft).Column + 1
        sut = Application.Max(sut, x)
        Hedef.Cells(satir + i - 1, sut).Value = kaynak.Range("B4").Value
    Next i
   
End Sub
Tam olarak istediğim bu idi . Çok teşekkürler. Elinize emeğinize sağlık
 
Üst