Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 07-04-2017, 12:53   #1
sarigozoglu
Altın Üye
 
Giriş: 26/09/2014
Şehir: Manisa
Mesaj: 53
Excel Vers. ve Dili:
2013 tr 2010 tr 2007 tr 2003 tr
Varsayılan Sayfalara ayrıştırma

Sevgili arkadaşlar ekteki örnek tabloya göre sayfalara ayrıştırma işlemi yapmak istiyorum.

Forumda epey araştırdım, fakat genel örneklemeler komple satır aktarma yönünde.

Benim örneğimde ayrıştırılacak veriler, anahtar veriye göre farklılık göstermekle birlikte aktarıldıkları sayfalarda da yine anahtar veriye göre farklı satırlara gidebiliyor.

Yardımlarınız için şimdiden teşekkür ederim.

Örnek dosya ektedir.
Eklenmiş Dosyalar
Dosya Türü: xlsx AYRIŞTIR.xlsx (17.0 KB, 4 Görüntülenme)
sarigozoglu Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-04-2017, 13:07   #2
Ömer
Moderatör
 
Ömer kullanıcısının avatarı
 
Giriş: 18/08/2007
Şehir: Kuşadası
Mesaj: 19,035
Excel Vers. ve Dili:
Excel 2010 Türkçe
Varsayılan

Merhaba,

Aktarım sırasında eski sayfalarda eski verilerin devamına yazar.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Sayfalara_Dagit()

    Dim S1 As Worksheet, i As Long, son As Long
    
    Set S1 = Sheets("Sayfa1")
    
    Application.ScreenUpdating = False
    On Error GoTo atla
    
    For i = 5 To S1.Cells(Rows.Count, "F").End(xlUp).Row
        With Sheets("" & S1.Cells(i, "F") & "")
            son = .Cells(Rows.Count, "A").End(xlUp).Row + 1
            .Cells(son, "A") = S1.Cells(i, "D")
            .Cells(son, "B") = S1.Cells(i, "C")
            .Cells(son, "C") = S1.Cells(i, "G")
            .Cells(son, "D") = S1.Cells(i, "H")
            .Cells(son, "E") = S1.Cells(i, "I")
        End With
    Next i
Exit Sub
atla:
    MsgBox S1.Cells(i, "F") & " Sayfasını Bulamadığım İçin İşlemi Burada Durdurdum."
    
    Application.ScreenUpdating = True
    
End Sub
.
__________________
.
Ömer Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-04-2017, 13:13   #3
sarigozoglu
Altın Üye
 
Giriş: 26/09/2014
Şehir: Manisa
Mesaj: 53
Excel Vers. ve Dili:
2013 tr 2010 tr 2007 tr 2003 tr
Varsayılan

Teşekkürler
Eski veriler silinecek demeyi unutmuşum ben tabi

Dizel ve Benzin sekmelerine atarken toplam fiyat gelmedi
sarigozoglu Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-04-2017, 13:17   #4
Ömer
Moderatör
 
Ömer kullanıcısının avatarı
 
Giriş: 18/08/2007
Şehir: Kuşadası
Mesaj: 19,035
Excel Vers. ve Dili:
Excel 2010 Türkçe
Varsayılan

Sayfa formatları farklı mı?

Dizel ve benzinde "KM" sütunu var fakat lpg ve hibrit de yok.

.
__________________
.
Ömer Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-04-2017, 13:28   #5
sarigozoglu
Altın Üye
 
Giriş: 26/09/2014
Şehir: Manisa
Mesaj: 53
Excel Vers. ve Dili:
2013 tr 2010 tr 2007 tr 2003 tr
Varsayılan

Evet yok, sayfa formatları birbirinden farklı.
İkisi başka, ikisi başka.
sarigozoglu Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-04-2017, 13:56   #6
Ömer
Moderatör
 
Ömer kullanıcısının avatarı
 
Giriş: 18/08/2007
Şehir: Kuşadası
Mesaj: 19,035
Excel Vers. ve Dili:
Excel 2010 Türkçe
Varsayılan

Bu durumda Sayfa1 başlıklar ile şart sayfalarındaki başlık isimlerinin aynı olmasına dikkat edin.

Örneğin Sayfa1 C4 de bulunan MODELNO değerini boşluk bırakarak yazın. MODEL NO gibi.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Sayfalara_Dagit()

    Dim S1 As Worksheet, i As Long, son As Long, j As Integer
    Dim c As Range, sat As Long
    
    Set S1 = Sheets("Sayfa1")
    
    Application.ScreenUpdating = False
        
    On Error Resume Next
    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "Sayfa1" Then
                sat = .Range("A1").End(xlDown).Row + 1
                .Range(.Cells(sat, "A"), _
                    .Cells(Rows.Count, Columns.Count)).ClearContents
            End If
        End With
    Next i
                
    On Error GoTo atla
    For i = 5 To S1.Cells(Rows.Count, "F").End(xlUp).Row
        With Sheets("" & S1.Cells(i, "F") & "")
            son = .Cells(Rows.Count, "A").End(xlUp).Row + 1
            sat = .Range("A1").End(xlDown).Row
            For j = 1 To .Cells(sat, Columns.Count).End(xlToLeft).Column
                Set c = S1.Rows(4).Find(.Cells(sat, j), , xlValues, xlWhole)
                If Not c Is Nothing Then
                    .Cells(son, j) = S1.Cells(i, c.Column)
                End If
            Next j
        End With
    Next i
Exit Sub
atla:
    MsgBox S1.Cells(i, "F") & " Sayfasını Bulamadığım" _
            & "İçin İşlemi Burada Durdurdum."
    
    Application.ScreenUpdating = True
    
End Sub
.
__________________
.
Ömer Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-04-2017, 14:23   #7
sarigozoglu
Altın Üye
 
Giriş: 26/09/2014
Şehir: Manisa
Mesaj: 53
Excel Vers. ve Dili:
2013 tr 2010 tr 2007 tr 2003 tr
Varsayılan

Çok teşekkür ederim ellerinize sağlık.

Çok önemli mi bilmiyorum ama işlem bittiğinde tüm sayfalar tam olmasına rağmen
"Sayfasını bulamadığım için......" şeklinde mesajı veriyor. Düzeltip düzeltmemek sizin takdirinize kalmış.

Diğer bir taraftan böyle bir mesaj vermek yerine sayfaları otomatik oluşturmasını sağlayamaz mıyız ?

Bu mesaj en son " 07-04-2017 " tarihinde saat 14:31 itibariyle sarigozoglu tarafından düzenlenmiştir.... Neden: İlave soru
sarigozoglu Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-04-2017, 14:39   #8
Ömer
Moderatör
 
Ömer kullanıcısının avatarı
 
Giriş: 18/08/2007
Şehir: Kuşadası
Mesaj: 19,035
Excel Vers. ve Dili:
Excel 2010 Türkçe
Varsayılan

atla:

satırından önce aşağıdaki satırı ilave edin.

Exit Sub

Yukarıdaki mesajları düzelttim.

.
__________________
.
Ömer Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-04-2017, 14:56   #9
Ömer
Moderatör
 
Ömer kullanıcısının avatarı
 
Giriş: 18/08/2007
Şehir: Kuşadası
Mesaj: 19,035
Excel Vers. ve Dili:
Excel 2010 Türkçe
Varsayılan

Alıntı:
sarigozoglu tarafından gönderildi Mesajı Görüntüle
Diğer bir taraftan böyle bir mesaj vermek yerine sayfaları otomatik oluşturmasını sağlayamaz mıyız ?
Farklı sayfa formatları kullanıyorsunuz. Hangi sayfanın formatında yeni sayfa açılacak?

.
__________________
.
Ömer Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 06:59


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Çorlu- Çorlu Araç Takip- Çorlu Su Arıtma- Gebze Emlak- Rampa- Rotary- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Çorlu Sürücü Kursu- Şişli Avukat- Edirne Serbest Muhasebeci- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kaplan Tekstil- Çorlu Perde- Çorlu Havuz- Makina- Danışmazlar-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden