• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Userform dan excele çoklu aktarım

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Excel005

Yeni Üye
Kullanıcı Bilgileri
Katılım
28 Mar 2023
Mesajlar
44
Aldığı beğeni
5
Excel Versiyonu
Office 2010 TR
Konuyu Başlatan
Merhaba, aşağıdaki userform kodunu sitedeki arkadaşların yardımlarıyla oluşturmuştuk. Bu kod kopyalanan metinde "FPL-" den sonraki ve "-" den önceki metni A sütununa ve aynı satırda "REG/" den sonraki ve if ile belirtilen kıstastakilerden önceki metni B sütununa yazdırıyor. Aşağıdaki metni userforma kopyaladığım zaman ilk kod sadece A sütununa "ABC123", B sütununa "ZZ111" olarak aktarıyor. Bu kodu tek seferlik aktarım için çalıştırabiliyorum. Bu kodu bir döngü içine alıp birden çok metin aktarımı için çalıştırabilirmiyiz? Yani aşağıdaki metni Userform'a kopyaladığımda A ve B sütunlarına aşağıdaki gibi kopyalayabilir miyiz? Ayrıca eğer A sütununa kopyalanacak metin "EEE", "DDD", "FFF", "GGG" ile başlıyorsa o metin ve sonrasındaki B sütununa aktaracağı metni hiç almasın. Yani FPL-EEE369, FPL-DDD475, FPL-FFF265, FPL-GGG632 ile başlayan metinleri excele hiç aktarmasın. Metnin en sonunda FPL123 ile başlayan metin mükerrer olarak yine yazılmış. Bunu alırsa metin iki kere aktarılmış olacak. Bu önlemek için eğer A ve B sütunlarına daha önce aynı metin aktarılmışsa bu metni hiç almasın. Örnek metinde 8 adet aktarılacak FPL- ile başlayan metin olmasına rağmen, yukarıda bahsettiğim kıstaslarla aşağıdaki 3 adet satıra düşmüş hali benim istediğim sonuç. Şimdiden yardımlarınız için teşekkür ederim.

Excele aktarılan sonuç:
A B
ABC123 ZZ111
ABC156 ZZ222
ABC178 ZZ352

Örnek Metin:

(FPL-ABC123-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110
REG/ZZ111 EET/LPPR0020)

(FPL-ABC156-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110
REG/ZZ222 EET/LPPR0020)

(FPL-ABC178-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110
REG/ZZ352 EET/LPPR0020)

(FPL-EEE369-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110
REG/HH213 EET/LPPR0020)

(FPL-DDD475-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110
REG/SS521 EET/LPPR0020)

(FPL-FFF265-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110
REG/CC563 EET/LPPR0020)

(FPL-GGG632-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110
REG/WW741 EET/LPPR0020)

(FPL-ABC123-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110
REG/ZZ111 EET/LPPR0020)

Userform kodu:---------------------------------------------------------------------------------------------------------------------------

C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

---------------------------------------------------------------------------------------------------------------
 

Ekli dosyalar

  • DNM.xlsm
    26.7 KB · Gösterim: 8
Çözüm
son hali. eğer REG/ZZ111'den sonra her zaman boşluk varsa yada yeni satıra geçiyorsa tek tek "EET/"," SEL/"..... gibi verileri kontrol etmeden de yapılabilir. ama tekrar vurgulayayım eğer boşluk yada satır başı varsa
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Deneyip dönüş yapın. Sayfa1 de döngü ile çalıştırabilirsiniz. Veriler E1 den başlamak şartı ile.
 

Ekli dosyalar

  • DNM (1).xlsm
    29.2 KB · Gösterim: 1
Deneyip dönüş yapın. Sayfa1 de döngü ile çalıştırabilirsiniz. Veriler E1 den başlamak şartı ile.
Merhaba, ilginiz için teşekkür ederim. Verilerim yukarıda gosterdiğim gibi genelde tek satırda değil, arka arkaya gelmekte. Bunları userform üzerinden şuanda tek metin için kullanabiliyorum. Benim isteğim yine userform üzerinden çoklu kullanabilmek.
 
aşağıdaki kodu dener misiniz?
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Merhaba, yeni gönderdiğiniz kodu çalıştıramadım. Eski kodum çalışan bir kod, sadece tek "FPL-" ile başlayan metin kopyalıyor. Eski kod istediğim birkaç şeyi daha yapıyor. Eski kod üzerinden çoklu "-FPL" aktarımı ve aktarırken filtrelemesi benim için daha iyi olur. İlginiz için teşekkür ederim.
 
Çalıştıramadım derken neyi kast ettiğinizi tam anlamadım? Bu kodu eski kodun yerine yapıştırınca düğmeye bastığınızda çalışır . Dün defalarca denedim çalıştı.
 
aşağıdaki kod tek veride de çalışıyor
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
a.gif
 
Son düzenleme:
Merhaba, ilginiz için teşekkür ederim. Verilerim yukarıda gosterdiğim gibi genelde tek satırda değil, arka arkaya gelmekte. Bunları userform üzerinden şuanda tek metin için kullanabiliyorum. Benim isteğim yine userform üzerinden çoklu kullanabilmek.
 

Ekli dosyalar

  • DNM (1).xlsm
    25 KB · Gösterim: 3
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Ekli dosyayı görüntüle 16492
Merhaba, kodu denedim. Karşılaştığım sorunlar.

-Aşağıdaki gibi eğer REG/ZZ111 paragraf sonunda ise sizin kodda diğer ilk boşluğa kadar alıyor. Yani B sütununa REG/ZZ111EET/LPPR0020 olarak geliyor. Eski kod ile bu sorun çözülmüştü. Bunu düzeltebilirmisiniz.
-Ayrıca mükerrer kayıtları hala excele atıyor.
-Userform form ekranına metin yapıştırdıktan sonra, excele aktardığım zaman metinler userform text ekranında kalıyor. Aktardıktan sonra text metnini kaldırabilirmisiniz.
-Ayrıca filtreye "FPL-" den sonraki "-" de eğer "-V" ile başlıyorsa yani " FPL-ABC123-VX" ise bununda excele göndermede diğer filtrelerde olduğu gibi kısıtlama yapabilirmisiniz. İyi günler, teşekkür ederim


(FPL-ABC123-IN -F100/M-SRWY/C -LPPR0600 -N0422F340 TURON
UP600 STG UN741 KEPER -LFPG0155 -DOF/060110 REG/ZZ111
EET/LPPR0020)

'eski KOD_____________________________________________________
' s1 = InStr(1, metin, "FPL-")
' s2 = InStr(s1, metin, "-")
' s3 = InStr(s2 + 1, metin, "-")
' m1 = Mid(metin, s2 + 1, s3 - s2 - 1)
' son = Sayfa1.Cells(Rows.Count, "A").End(3).Row + 1
'
' Sayfa1.Cells(son, "A") = m1
' s1 = InStr(1, metin, "REG/")
' s2 = InStr(s1, metin, " EET/")
' If s2 = 0 Then s2 = InStr(1, metin, "EET/")
' If s2 = 0 Then s2 = InStr(1, metin, " SEL/")
' If s2 = 0 Then s2 = InStr(1, metin, " ORGN/")
' If s2 = 0 Then s2 = InStr(1, metin, ")")
' m1 = Mid(metin, s1 + 4, s2 - s1 - 4)
' Sayfa1.Cells(son, "B") = m1
'eski KOD_____________________________________________________
 
Merhaba, kodunuza baktım ama A ve B sütunlarına da A sütunu verisini yazıyor. O yüzden kod ile ilgili deneme yapamadım. İyi günler, teşekkür ederim.
 
-Aşağıdaki gibi EĞER REG/ZZ111 paragraf sonunda ise sizin kodda diğer ilk boşluğa kadar alıyor. Yani B sütununa REG/ZZ111EET/LPPR0020 olarak geliyor. Eski kod ile bu sorun çözülmüştü.
keşke bunu ilk mesajınızda net bir şekilde belirtseydiniz. çoğu durumda eski kodu kullanmak yerine kendi kodlarımızı yazıyoruz. bu durumda da açıklama net olmadığı zaman dikkatten kaçıyor. ben de sadece boşluğa göre almıştım.
-Ayrıca mükerrer kayıtları hala excele atıyor.
Not IsError(Application.Match(xFpl(0), dzK, False)) Then GoTo xAtla kodu ile eğer değer a sütununda varsa o satırı atlıyordu denemelerimde de doğru çalışıyordu mükerrerlik kontrolü tam olarak neye göre yapılacak?
 
Sayın Excel005
Kontrol eder misiniz?
 

Ekli dosyalar

  • DNM_userx.xlsm
    32.7 KB · Gösterim: 3
keşke bunu ilk mesajınızda net bir şekilde belirtseydiniz. çoğu durumda eski kodu kullanmak yerine kendi kodlarımızı yazıyoruz. bu durumda da açıklama net olmadığı zaman dikkatten kaçıyor. ben de sadece boşluğa göre almıştım.

Not IsError(Application.Match(xFpl(0), dzK, False)) Then GoTo xAtla kodu ile eğer değer a sütununda varsa o satırı atlıyordu denemelerimde de doğru çalışıyordu mükerrerlik kontrolü tam olarak neye göre yapılacak?
Daha önce belirtmediğim için kusura bakmayın. Mükerrer kayıt A ve B sütunlarında veriler birebir aynı ise aktarmasın şeklinde idi.
 
Sayın Excel005
Kontrol eder misiniz?
Merhaba, elinize sağlık kod çalışıyor. Ancak veriler aktarıldıktan sonra alfabetik sıralanıyor. Bunu alfabetik değilde son kopyalanan veri en altta olacak şekilde değiştirebilirmisiniz. Excele aktar dedikten sonra "bitti" penceresi açılıyor, onuda iptal edebilirmisiniz. Teşekkür ederim.
 
Sayın Excel005
Kontrol eder misiniz?
Mehaba, bir hata farkettim. B sütununa kopyalanan veri "REG/" den sonraki metin 5 karakterle sınırlandırılmış sanırım. Bunu boşluğa kadar yada paragraf sonu oluyorsa aşağıdaki eski kodda olduğu gibi düzenleyebilirmisiniz.

'eski KOD_____________________________________________________
' s1 = InStr(1, metin, "FPL-")
' s2 = InStr(s1, metin, "-")
' s3 = InStr(s2 + 1, metin, "-")
' m1 = Mid(metin, s2 + 1, s3 - s2 - 1)
' son = Sayfa1.Cells(Rows.Count, "A").End(3).Row + 1
'
' Sayfa1.Cells(son, "A") = m1
' s1 = InStr(1, metin, "REG/")
' s2 = InStr(s1, metin, " EET/")
' If s2 = 0 Then s2 = InStr(1, metin, "EET/")
' If s2 = 0 Then s2 = InStr(1, metin, " SEL/")
' If s2 = 0 Then s2 = InStr(1, metin, " ORGN/")
' If s2 = 0 Then s2 = InStr(1, metin, ")")
' m1 = Mid(metin, s1 + 4, s2 - s1 - 4)
' Sayfa1.Cells(son, "B") = m1
'eski KOD_____________________________________________________
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst