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


Kapalı Konu
 
Paylaş Konu Araçları Görünüm Modları
Eski 26-09-2017, 15:14   #1
ilkersan
Altın Üye
 
Giriş: 23/04/2005
Şehir: İstanbul
Mesaj: 34
Excel Vers. ve Dili:
Office 2010
Varsayılan Aktarma makrosu daha kısa yazılabilir mi?

Merhaba,

Ekli dosyadaki excel şablonlarına makro ile beri aktarıyorum. Makro 15 ayrı koşula göre çalışıyor. Her koşul için ayrı kod grubu oluşturdum. Aşağıdaki örnekte görüldüğü gibi sadece kırmızı fontlu kod satırında değişiklik yaparak.
Benim merak ettiğin 15 ayrı makro yazmak yerine tek bir makroda aktarım yapacak bir kod yazılabiliyor mi?
Yardım, görüş ve önerileriniz için şimdiden teşekkürler.



Alıntı:
Sub aktar()
Application.ScreenUpdating = False
Dim S1 As Worksheet
Dim S2 As Worksheet
Set S1 = Sheets("Formlar") 'sayfa ad değiştir
Set S2 = Sheets("Takip") 'sayfa ad değiştir
's1 veri alınan sayfa
's2 veri yazılan sayfa

S1_son_sat = S1.[b65536].End(3).Row
a = 5
b = 1
For i = 2 To S1_son_sat
If S1.Cells(i, "e") = Range("I4").Value2 Then
'If S1.Cells(i, "B") = "FSC ASIAN HA TECH 5" Then ' teknisyen

S2.Cells(a, "B") = S1.Cells(i, "b")
S2.Cells(a, "c") = S1.Cells(i, "r")
S2.Cells(a, "d") = S1.Cells(i, "ap")
S2.Cells(a, "f") = S1.Cells(i, "au")
S2.Cells(a, "h") = S1.Cells(i, "n")
'S2.Cells(a, "b") = b
b = b + 1
a = a + 1

Else
End If
Next i

'Application.ScreenUpdating = True
'MsgBox " B İ T T İ "
End Sub
Eklenmiş Dosyalar
Dosya Türü: xlsm örnek.xlsm (106.2 KB, 5 Görüntülenme)
__________________
Excel 2007 - Türkçe
ilkersan Çevrimdışı  
Eski 26-09-2017, 15:57   #2
PLİNT
 
Giriş: 31/12/2014
Şehir: Gürün
Mesaj: 1,363
Excel Vers. ve Dili:
Excel 2010
Varsayılan

Merhaba
Koşulları "or" ("yada") ile birleştirerek olabilir.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
If S1.Cells(i, "e") = Range("I4").Value2 Or _
S1.Cells(i, "B") = "FSC ASIAN HA TECH 5" Or _
S1.Cells(i, "e") = Range("I4").Value2 Then

Bu mesaj en son " 26-09-2017 " tarihinde saat 16:03 itibariyle PLİNT tarafından düzenlenmiştir....
PLİNT Çevrimdışı  
Eski 26-09-2017, 16:47   #3
ilkersan
Altın Üye
 
Giriş: 23/04/2005
Şehir: İstanbul
Mesaj: 34
Excel Vers. ve Dili:
Office 2010
Varsayılan

Sayın PLİNT,
Cevap teşekkürler "or" yapısını kullanamıyorum. Kod sayfamda 15 adet aktarma makrosu var. Aktarım yapılan sayfada 15 adet şablonum her kod şablonda farklı satır aralıklarında veri aktarıyor. Bu yüzden 15 makro oluşturdum. Sanırım başka çözüm yolu yok.



Alıntı:
PLİNT tarafından gönderildi Mesajı Görüntüle
Merhaba
Koşulları "or" ("yada") ile birleştirerek olabilir.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
If S1.Cells(i, "e") = Range("I4").Value2 Or _
S1.Cells(i, "B") = "FSC ASIAN HA TECH 5" Or _
S1.Cells(i, "e") = Range("I4").Value2 Then
__________________
Excel 2007 - Türkçe
ilkersan Çevrimdışı  
Eski 26-09-2017, 17:38   #4
unlimitted
Altın Üye
 
Giriş: 07/01/2015
Şehir: ankara
Mesaj: 249
Excel Vers. ve Dili:
2013 english
Varsayılan

VBA için "case" yapısını araştırın derim.
bence yapılabilir.
unlimitted Çevrimdışı  
Eski 26-09-2017, 17:50   #5
Orion1
Uzman
 
Orion1 kullanıcısının avatarı
 
Giriş: 01/03/2005
Mesaj: 19,715
Excel Vers. ve Dili:
Win7 Home Basic TR 64 Bit Ofis-2010-TR 32 Bit
Varsayılan

Pragmatik procedure ile çözdüm.
Dosya ektedir.
Eklenmiş Dosyalar
Dosya Türü: rar örnek59.rar (68.3 KB, 12 Görüntülenme)
Orion1 Çevrimiçi  
Eski 26-09-2017, 19:46   #6
ilkersan
Altın Üye
 
Giriş: 23/04/2005
Şehir: İstanbul
Mesaj: 34
Excel Vers. ve Dili:
Office 2010
Varsayılan

Sayın unlimitted
Select Case yapısı da uymuyor.

Sayın Orion1

Cevabınız için teşekkürler.
Pragmatik procedure ilgili detaylı bilgiye nasıl ulaşabilirim.
Anladığım kadarıyla veri aktarılacak satırlar parantez içindekiler.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Düğme3_Tıklat()
Call aktar(5)
Call aktar(36)
Call aktar(67)
Call aktar(98)
Call aktar(129)
Call aktar(160)
Call aktar(191)
Call aktar(222)
Call aktar(253)
Call aktar(284)
Call aktar(315)
Call aktar(346)
Call aktar(377)
Call aktar(408)
Call aktar(439)
Bu prosedürü çalıştırmak için aşağıdaki kod grubu yeterli mi?
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub aktar(ByRef a As Long)
__________________
Excel 2007 - Türkçe
ilkersan Çevrimdışı  
Eski 26-09-2017, 19:49   #7
Orion1
Uzman
 
Orion1 kullanıcısının avatarı
 
Giriş: 01/03/2005
Mesaj: 19,715
Excel Vers. ve Dili:
Win7 Home Basic TR 64 Bit Ofis-2010-TR 32 Bit
Varsayılan

Düğme3 prosedürünü çalıştırmak yeterli.
oradaki değişkeni aktar prosederünde kullanıyoruz.İlk başlangıç için satır no sudur , onlar.
Orion1 Çevrimiçi  
Kapalı Konu


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 14:32


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 - Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Dil Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu 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- Kağıt Bardak- Kaplan Tekstil- Çorlu Perde- Çorlu Perde- Çorlu Havuz- Çorlu Havuz- Makina- Danışmazlar- Çorlu Perde Yıkama- Çorlu Perde Yıkama- Okul Danışmanlık- Çorlu Ayakkabı- İzmit Sigorta- ADR'li taşıma kabı imalatı- Mekanik Tesisat- Çorlu Grafik Tasarım-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden