• DİKKAT

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

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
 
Merhaba,

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

y değeri satir değerinden küçük olduğundan atlıyordur. Bu iki değişkenin aldığı değerleri kontrol ediniz.
 
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...
 
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.
 
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
 
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:
Rica etsem örnek excel dosyası ekleyip açıklar mısınız.


.
 
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
 
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
 
Geri
Üst