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 15-01-2014, 17:58   #1
sirseriii
 
Giriş: 15/01/2014
Şehir: ankara
Mesaj: 16
Excel Vers. ve Dili:
2007
Varsayılan Farklı veri türündeki hücreleri birleştirme

Arkadaşlar öncelikle merhabalar. Yazılım işiyle ilgili olmama rağmen makro ve vba konusunda yeniyim. Neredeyse bununla ilgili tüm konulara baktım ancak tam olarak aradığımı bulamadım.

Öncelikle direk hücre içine fonksiyon yazarak yapamam bunu çünkü veri oldukça fazla ve alacağım hücreler sürekli değişiyor. Durumu örnekle şu şekilde açıklıyayım:

A1 hücresinde C:P: yazıyor, buradan önce sadece C'sini alacağım, sonra ayrı olarak P sini alacağım. B1 hücresinde TO1:A: yazıyor. Önce TO1 sonra A alacağım. C1 hücresinde K yazıyor onu olduğu gibi alacağım. D1 hücresinde 2111 yazıyor onu da olduğu gibi alacağım ve başka bir kolonua şunu yazdıracağım;

<Seri Pozisyon="C" Enstruman="P" ParaBirimi="TO1" DovizCinsi="A" Sektor="K" Deger="2111"/>

Yani son olarak excelde belirttiğim herhangi bir kolona tam olarak bunu yazmasını istiyorum.

Yardımcı olursanız çok sevinirim. Şimdiden teşekkürler
sirseriii Çevrimdışı   Alıntı Yaparak Cevapla
Eski 15-01-2014, 18:24   #2
mucit77
Destek Ekibi
 
mucit77 kullanıcısının avatarı
 
Giriş: 22/10/2012
Mesaj: 1,975
Excel Vers. ve Dili:
2007 Türkçe
Varsayılan

Bu işinizi görür umarım. E sütununa yazar.
A ve B sütunlarının hücrelerindeki harf sayısı aynı değilse problem çıkacaktır.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub paramparca()
For i = 1 To [A65500].End(3).Row
Cells(i, 5).Value = "<Seri Pozisyon=""" & Mid(Cells(i, 1).Value, 1, 1) & """ Enstruman=""" & Mid(Cells(i, 1).Value, 3, 1) & """ ParaBirimi=""" & Mid(Cells(i, 2).Value, 1, 3) & """ DovizCinsi=""" & Mid(Cells(i, 2).Value, 5, 1) & """ Sektor=""" & Cells(i, 3).Value & """ Deger=""" & Cells(i, 4).Value & """/>"
Next
End Sub
__________________
Alıntı:
evi Nepal'de kalmış
Slovakyalı salyangozdur ruhum
mucit77 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-01-2014, 10:33   #3
sirseriii
 
Giriş: 15/01/2014
Şehir: ankara
Mesaj: 16
Excel Vers. ve Dili:
2007
Varsayılan

Alıntı:
mucit77 tarafından gönderildi Mesajı Görüntüle
Bu işinizi görür umarım. E sütununa yazar.
A ve B sütunlarının hücrelerindeki harf sayısı aynı değilse problem çıkacaktır.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub paramparca()
For i = 1 To [A65500].End(3).Row
Cells(i, 5).Value = "<Seri Pozisyon=""" & Mid(Cells(i, 1).Value, 1, 1) & """ Enstruman=""" & Mid(Cells(i, 1).Value, 3, 1) & """ ParaBirimi=""" & Mid(Cells(i, 2).Value, 1, 3) & """ DovizCinsi=""" & Mid(Cells(i, 2).Value, 5, 1) & """ Sektor=""" & Cells(i, 3).Value & """ Deger=""" & Cells(i, 4).Value & """/>"
Next
End Sub
Hocam çok çok çok teşekkür ederim. Bir de şimdi bu satır satır bakıyor. Buna j değişkeni de eklemem gerekiyor. yani atıyorum bi satır için 10 tane kolon var. sadece o satır için her bir kolonun ifadesi 10 tane olacak. mesela 1. satır için 10 tane <Seri Pozisyon... olacak.

Ben şöyle bir taslak çıkardım senin attığın kodun üzerinde oynamalar yaptım bana lazım olan şeyi şu keilde açıkladım yardımcı olursan sevinirim.

Sub paramparca()
For i = 16 To [A65500].End(3).Row
Cells(i, 14).Value = "<Seri Pozisyon=""" & Mid(Cells(1, 6).Value, 1, 1) & """ Enstruman=""" & Mid(Cells(1, 6).Value, 3, 1) & """ ParaBirimi=""" & Mid(Cells(14, j).Value, 1, 3) & """ DovizCinsi=""" & Mid(Cells(14, j).Value, 5, 1) & """ Sektor=""" & Cells(11, j).Value & """ Ulke=""" & Cells(i, 2).Value & """ Deger=""" & Cells(i, j).Value & """/>"
Next
End Sub

-seri pozisyon ve ensturman sayfada sabit bir hücrede o yüzden loop a sokmadım.
- j=3 den başlıcak hocam

Çok çok sağol şimdiden.
sirseriii Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-01-2014, 11:19   #4
systran
Destek Ekibi
 
Giriş: 15/12/2007
Mesaj: 1,383
Excel Vers. ve Dili:
2007 [TR]
Varsayılan

iki tane döngü lazım. bu şekilde dener misin?
Alıntı:
sirseriii tarafından gönderildi Mesajı Görüntüle
Sub paramparca()
For i = 16 To [A65500].End(3).Row
For j=3 to 13
Cells(i, 14).Value = "<Seri Pozisyon=""" & Mid(Cells(1, 6).Value, 1, 1) & """ Enstruman=""" & Mid(Cells(1, 6).Value, 3, 1) & """ ParaBirimi=""" & Mid(Cells(14, j).Value, 1, 3) & """ DovizCinsi=""" & Mid(Cells(14, j).Value, 5, 1) & """ Sektor=""" & Cells(11, j).Value & """ Ulke=""" & Cells(i, 2).Value & """ Deger=""" & Cells(i, j).Value & """/>"
Next j
Next i
End Sub
systran Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-01-2014, 11:42   #5
sirseriii
 
Giriş: 15/01/2014
Şehir: ankara
Mesaj: 16
Excel Vers. ve Dili:
2007
Varsayılan

Alıntı:
systran tarafından gönderildi Mesajı Görüntüle
iki tane döngü lazım. bu şekilde dener misin?
dostum döngü mantığını doğru kurmussun sanırım ama yazdırma işlemini de sokmak lazım döngüye sanırım. yoksa sutun bazlı olarak en sonuncuyu yazdırıyor.
sirseriii Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-01-2014, 11:50   #6
systran
Destek Ekibi
 
Giriş: 15/12/2007
Mesaj: 1,383
Excel Vers. ve Dili:
2007 [TR]
Varsayılan

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
satir=1
Sub paramparca()
For i = 16 To [A65500].End(3).Row
  For j=3 to 13
       Cells(satir, 14).Value = "<Seri Pozisyon=""" & Mid(Cells(1, 6).Value, 1, 1) & """ Enstruman=""" & Mid(Cells(1, 6).Value, 3, 1) & """ ParaBirimi=""" & Mid(Cells(14, j).Value, 1, 3) & """ DovizCinsi=""" & Mid(Cells(14, j).Value, 5, 1) & """ Sektor=""" & Cells(11, j).Value & """ Ulke=""" & Cells(i, 2).Value & """ Deger=""" & Cells(i, j).Value & """/>"
       satir=satir+1
  Next j
Next i
End Sub
systran Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-01-2014, 12:02   #7
sirseriii
 
Giriş: 15/01/2014
Şehir: ankara
Mesaj: 16
Excel Vers. ve Dili:
2007
Varsayılan

Alıntı:
systran tarafından gönderildi Mesajı Görüntüle
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
satir=1
Sub paramparca()
For i = 16 To [A65500].End(3).Row
  For j=3 to 13
       Cells(satir, 14).Value = "<Seri Pozisyon=""" & Mid(Cells(1, 6).Value, 1, 1) & """ Enstruman=""" & Mid(Cells(1, 6).Value, 3, 1) & """ ParaBirimi=""" & Mid(Cells(14, j).Value, 1, 3) & """ DovizCinsi=""" & Mid(Cells(14, j).Value, 5, 1) & """ Sektor=""" & Cells(11, j).Value & """ Ulke=""" & Cells(i, 2).Value & """ Deger=""" & Cells(i, j).Value & """/>"
       satir=satir+1
  Next j
Next i
End Sub
Abi çok çok çok ama çooookkk sağol ya valla büyük sevap işlediniz
sirseriii Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-01-2014, 12:22   #8
sirseriii
 
Giriş: 15/01/2014
Şehir: ankara
Mesaj: 16
Excel Vers. ve Dili:
2007
Varsayılan

Alıntı:
systran tarafından gönderildi Mesajı Görüntüle
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
satir=1
Sub paramparca()
For i = 16 To [A65500].End(3).Row
  For j=3 to 13
       Cells(satir, 14).Value = "<Seri Pozisyon=""" & Mid(Cells(1, 6).Value, 1, 1) & """ Enstruman=""" & Mid(Cells(1, 6).Value, 3, 1) & """ ParaBirimi=""" & Mid(Cells(14, j).Value, 1, 3) & """ DovizCinsi=""" & Mid(Cells(14, j).Value, 5, 1) & """ Sektor=""" & Cells(11, j).Value & """ Ulke=""" & Cells(i, 2).Value & """ Deger=""" & Cells(i, j).Value & """/>"
       satir=satir+1
  Next j
Next i
End Sub
çok kısa birşey daha soracağım. For i = 16 To [A65500].End(3).Row burada sanırım [A65500].End(3).Row kısmı satır bitene kadar bak demek oluyor. Peki bunu sütun için nasıl yapabilirim? ya da o ifadedeki yazanları açıklarsanız çok sevinirim.
sirseriii Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-01-2014, 12:57   #9
systran
Destek Ekibi
 
Giriş: 15/12/2007
Mesaj: 1,383
Excel Vers. ve Dili:
2007 [TR]
Varsayılan

[A65500].End(xlUp).Row A sütunu için kullanılmış en son hücreyi bulmak için.

sütun olan versiyonu:
[XFD1].End(xlToLeft).Column
1. satır için sağa doğru giderken kullanılmış en son hücrenin sütun numarasını verir.
systran Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-01-2014, 14:06   #10
sirseriii
 
Giriş: 15/01/2014
Şehir: ankara
Mesaj: 16
Excel Vers. ve Dili:
2007
Varsayılan

Alıntı:
systran tarafından gönderildi Mesajı Görüntüle
[A65500].End(xlUp).Row A sütunu için kullanılmış en son hücreyi bulmak için.

sütun olan versiyonu:
[XFD1].End(xlToLeft).Column
1. satır için sağa doğru giderken kullanılmış en son hücrenin sütun numarasını verir.
Yazdırmak istediğimde Cells(satir, [XFD1].End(xlToLeft).Column + 1 ) olarak yazabilirmiyim peki ?
sirseriii Ç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 11:29


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-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden