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 30-08-2017, 00:39   #1
BedriA
Altın Üye
 
BedriA kullanıcısının avatarı
 
Giriş: 03/06/2017
Şehir: Antalya
Mesaj: 797
Excel Vers. ve Dili:
2007, 32
Varsayılan Düşeyara Formülünde Fazla Karakter Hatası

Arkadaşlar,

Aşağıdaki kod ile düşeyara/ma yapıyorum.
Ancak aranacak metinde karakter sayısının fazlalığıyla ilgili bir hata alıyorum.

Düşeyara için bir karakter kısıtlaması var mı?

Kullanndığım kod aşağıdadır. Kırmızı kısımda hata veriyor.
Hata ekranı ektedir.

Yardımcı olabilirseniz çok sevinirim.


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

If Label1.Caption = "Soru" Then
MsgBox "Soru seçmediniz.", vbInformation, "      Uyarı"
Exit Sub
End If

Sheets("arsiv").Select
Range("B1").Select
ActiveCell.FormulaR1C1 = "=COUNTA(R[1]C[-1]:R[65535]C[-1])"
Range("B1").Select
Selection.NumberFormat = "General"

If Range("B1").Value = 0 Then
MsgBox "Henüz arşivlenmiş sınav yok.", vbInformation, "        Bilgi"

Exit Sub
End If



    
ARANAN = Label1.Caption

Sheets("arsiv").Select

Columns("C:F").Select
Selection.ClearContents
    
Range("E1").Select
ActiveCell.FormulaR1C1 = "=COUNTA(R[1]C[-4]:R[65535]C[-4])"
son = Range("E1").Value

For i = 2 To son + 1
Range("D" & i).Select

ActiveCell.FormulaR1C1 = "=VLOOKUP(""" & ARANAN & """,RC[-3]:R[65534]C[-2],2,0)"

Next i

On Error Resume Next

Sheets("arsiv").Select
bed = Range("e1")
For a = 2 To bed
Range("E" & a).Value = Range("D" & a).Value
Next a

ada = Cells(Rows.Count, "E").End(3).Row
Range("E" & ada - 1) = "________________"


Range("E1").Select
Selection.ClearContents
Columns("E:E").Select
ActiveSheet.Range("$E$1:$E$34").RemoveDuplicates Columns:=1, Header:=xlNo

Sheets("AYARLAR").Select
Sheets("arsiv").Select


son = Cells(Rows.Count, "E").End(3).Row
   
Range("F2") = Join(Application.Transpose(Range("E2:E" & son)), Chr(10))

denetim2.Show

End Sub
__________________
Demiri demirle dövdüler, biri sıcak biri soğuktu.
İnsanı insana kırdırdılar, biri aç biri toktu.

Pir Sultan Abdal
BedriA Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-08-2017, 01:24   #2
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 10,225
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Merhaba.

Öncelikle; kodlarda mümkün olduğunca, select, activate gibi satırlar kullanmamanızı önermeliyim.

Keşke sorunlu haliyle bir örnek belge yükleseydiniz ve kod ile yapmak istediğinizi, örnek belge üzerinden net şekilde ifade etseydiniz.
Örnek belge ekleyecekseniz, varsa kullanılan userform ve kodların dosya içerisinde olmasını sağlayınız.

Label1.Caption boş iken veya Label1.Caption değeri arama sütununda mevcut olmadığında sorun yaşıyorsunuz sanırım.

Sorunlu satırdan hemen önce MsgBox Label1.Caption şeklinde bir satır ekleyip kod'u çalıştırdığınızda Mesaj Kutusunda görüntülenen nedir acaba?
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosyaupload.com gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-08-2017, 01:54   #3
BedriA
Altın Üye
 
BedriA kullanıcısının avatarı
 
Giriş: 03/06/2017
Şehir: Antalya
Mesaj: 797
Excel Vers. ve Dili:
2007, 32
Varsayılan

Ömer Hocam,

Dosya bir hayli kalabalık; sayfalar, userformlar...
Soru bankasından seçtiğim bir sorunun daha önce hazırlanmış
bir sınav kağıdında kullanılıp kullanılmadığını denetliyorum bu kodla.

Hazırlanan kağıtlardaki sorular tarihe göre arşivleniyor. Bu sayede
denetim yapıyorum.

Ancak uzun sorularda ilk mesajdaki hatayı alıyorum.
Örneğin aşağıdaki soruda hata alıyorum:

A ve B şehrindeki iki araç birbirine doğru hareket ettikten iki saat sonra A ve B şehirleri arasındaki C şehrinde karşılaşıyorlar. A dan hareket eden araç, B den hareket eden araçtan 2 kat fazla yol aldığına göre A daki araç hızını iki katına çıkartırsa kaç saat sonra karşılaşırlar?

Bu soruyu şöyle kısalttığımda sorunsuz çalışıyor:

A ve B şehrindeki iki araç birbirine doğru hareket ettikten iki saat sonra A ve B şehirleri arasındaki C şehrinde karşılaşıyorlar.


MsgBox Label1.Caption satırını kullandığımda soru ne kadar uzun olursa olsun görüntüleniyor.
__________________
Demiri demirle dövdüler, biri sıcak biri soğuktu.
İnsanı insana kırdırdılar, biri aç biri toktu.

Pir Sultan Abdal
BedriA Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-08-2017, 02:39   #4
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 10,225
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Tekrar merhaba.

Daha evvel hiç rastlamamıştım.
Gerek ARANAN ve gerekse de ARAMA ALANINDAKİ metin 255 karakterden fazla olduğunda,
EĞERSAY, DÜŞEYARA, KAÇINCI işlevleri de HATA veriyor.

Çözüm olarak ARAMA alanının ilk 255 karakterinden oluşan ikinci bir sütun oluşturup ARAMA işlemini orada yapmak,
ARANAN değeri de 255 karakterle sınırlandırmak gerekecek demektir.
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosyaupload.com gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-08-2017, 02:55   #5
BedriA
Altın Üye
 
BedriA kullanıcısının avatarı
 
Giriş: 03/06/2017
Şehir: Antalya
Mesaj: 797
Excel Vers. ve Dili:
2007, 32
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Tekrar merhaba.

Daha evvel hiç rastlamamıştım.
Gerek ARANAN ve gerekse de ARAMA ALANINDAKİ metin 255 karakterden fazla olduğunda,
EĞERSAY, DÜŞEYARA, KAÇINCI işlevleri de HATA veriyor.

Çözüm olarak ARAMA alanının ilk 255 karakterinden oluşan ikinci bir sütun oluşturup ARAMA işlemini orada yapmak,
ARANAN değeri de 255 karakterle sınırlandırmak gerekecek demektir.
.
Ömer Hocam,

İlginiz için teşekkür ederim.
İkinci bir sütun açmak, diğer kodları etkileyecek.
Bunun yerine Soruları bulundukları yerde, "Eğer 255 karakterden fazlaysa, 255'ten sonrasını silen" bir kod yazmak mümkün mü?

Tabi bunun için label1.caption değerine aynı işlem yapılacak, böylece ARANAN değerle eşitlenecek...

Bunun için yardımcı olabilir misiniz?

Sorular "arsiv" isimli sayfada ve A sütununda A2 den itibaren alt alta bulunuyor.

label1.caption için de sorular soru bankasından süzülerek "Suz1" sayfasının C sütunundan alınıyor.
__________________
Demiri demirle dövdüler, biri sıcak biri soğuktu.
İnsanı insana kırdırdılar, biri aç biri toktu.

Pir Sultan Abdal
BedriA Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-08-2017, 03:21   #6
BedriA
Altın Üye
 
BedriA kullanıcısının avatarı
 
Giriş: 03/06/2017
Şehir: Antalya
Mesaj: 797
Excel Vers. ve Dili:
2007, 32
Varsayılan

Ömer Hocam,

Çok teşekkürler.
Önerinizle hallettim sorunu.
__________________
Demiri demirle dövdüler, biri sıcak biri soğuktu.
İnsanı insana kırdırdılar, biri aç biri toktu.

Pir Sultan Abdal
BedriA Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-08-2017, 12:13   #7
Korhan Ayhan
Moderatör
 
Korhan Ayhan kullanıcısının avatarı
 
Giriş: 15/03/2005
Şehir: ANTALYA
Mesaj: 23,092
Excel Vers. ve Dili:
OFFICE 2013-2016 PRO TR
Varsayılan

Daha önce bende bu problemle karşılaşmıştım.

Sağ olsunlar Ömer Bey ve İdris Bey yardımcı olmuşlardı.

Ömer beyin açıklaması;

Alıntı:
Korhan Bey,

Bu sorunla daha önce bende karşılaşmıştım.
Araştırmalarıma göre; Düşeyara,etopla,eğersay ... türündeki fonksiyonlar Excelin sınırları olan; sayı da 15, metin de 255 karakter sınırından sonraki hesaplamalarda duyarlılık probleminden dolayı her zaman doğru sonuç üretmiyor.

Etopla örneğinizde verileri metne çevirdim diyebilirsiniz. Fakat ' simgesi ile metne çevirseniz dahi bunları sayı olarak sınırlarına alıyor. Sayının başına ' değil de herhangi bir harf eklerseniz tam anlamıyla metne çevrildiği için hesaplamayı doğru yapar. Tabi bu seferde metinlerdeki 255 sınırı sorun yaratabilir.

Ben bu sorunumu, topla.çarpım gibi dizi içinde tek tek hesaplama yapan fonksiyon kullanarak çözmüştüm.
İdris beyin önerdiği ekli dosyayı inceleyiniz.
Eklenmiş Dosyalar
Dosya Türü: xlsx VLOOKUP-SUMİF-256.xlsx (10.6 KB, 6 Görüntülenme)
__________________
.
.
.

Soru sormadan önce forumumuzun aşağıdaki
bölümlerini incelediğinizde birçok sorunuza yanıt bulabilirsiniz.


Excel Dersanesi
Uygulamalı Excel Eğitimi
Excel İçin Örnek Uygulamalar
Video Dersane (***Altın Üyelere Özel***)

Lütfen sorularınızın çözümlendiğine dair geri dönüş mesajı yazınız...!
Lütfen yazım ve forum kurallarına uyalım...!
Lütfen sorularımızı açık ve net bir dille ifade edelim...!



FORUM KURALLARI
Korhan Ayhan Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-08-2017, 18:01   #8
BedriA
Altın Üye
 
BedriA kullanıcısının avatarı
 
Giriş: 03/06/2017
Şehir: Antalya
Mesaj: 797
Excel Vers. ve Dili:
2007, 32
Varsayılan

Teşekkür ederim Korhan Hocam.

Ömer Hoca'nın önerisiyle soruların soldan 255 karakteriyle işlem yaptım.
255 karakteri çakışan soru olma ihtimali çok düşük.

Bu yüzden sorun şimdilik çözülmüş gibi görünüyor.

Tekrar teşekkür ederim.
__________________
Demiri demirle dövdüler, biri sıcak biri soğuktu.
İnsanı insana kırdırdılar, biri aç biri toktu.

Pir Sultan Abdal
BedriA Çevrimdışı   Alıntı Yaparak Cevapla
Eski 31-08-2017, 01:41   #9
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 10,225
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Alıntı:
BedriA tarafından gönderildi Mesajı Görüntüle
Ömer Hocam,

Çok teşekkürler.
Önerinizle hallettim sorunu.
İhtiyaç görüldüğüne göre mesele yok. Sayın AYHAN'ın belirttiği Sayın SERDAR'ın çözümünü de dikkate almak gerek.

Bu arada tekrar belirteyim;
madem VBA ile ilgileniyorsunuz; ....Select, .....Activate kodlarını gerekmedikçe kullanmama konusunun üzerinde durmanızı tavsiye ederim.
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosyaupload.com gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 31-08-2017, 03:06   #10
BedriA
Altın Üye
 
BedriA kullanıcısının avatarı
 
Giriş: 03/06/2017
Şehir: Antalya
Mesaj: 797
Excel Vers. ve Dili:
2007, 32
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
İhtiyaç görüldüğüne göre mesele yok. Sayın AYHAN'ın belirttiği Sayın SERDAR'ın çözümünü de dikkate almak gerek.

Bu arada tekrar belirteyim;
madem VBA ile ilgileniyorsunuz; ....Select, .....Activate kodlarını gerekmedikçe kullanmama konusunun üzerinde durmanızı tavsiye ederim.
.
Ömer Hocam,

Projeyi sonunda bitirdim ama birkaç nokta var ki aşamıyorum.
ThisWorkbook.Save çok geç işlem yapıyor.

Hızlandırmak için sayfa sayısını nerdeyse yarıya düşürdüm, hissedilir bir hızlanma oldu ancak hala bekletiyor.

Bahsettiğiniz Select gibi kodlar da yavaşlama nedeni olabilir mi?
Çünkü aşağıdaki gibi çok sayıda kodum var.

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

Sheets("6k").Select
Range("e8:e10").Select
Selection.ClearContents

Range("g8:g10").Select
Selection.ClearContents

End Sub
Eğer gecikmenin nedenlerinden ise bu kodlar,
o halde bu kodları nasıl revize edebiliriz?
__________________
Demiri demirle dövdüler, biri sıcak biri soğuktu.
İnsanı insana kırdırdılar, biri aç biri toktu.

Pir Sultan Abdal
BedriA Ç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 05:49


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- Rampa- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Şişli Avukat- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kağıt Bardak- Çorlu Havuz- Çorlu Havuz- Çorlu Perde Yıkama- Okul Danışmanlık- ADR'li taşıma kabı imalatı- Mekanik Tesisat- Çorlu Grafik Tasarım- Çorlu Sondaj- Çorlu Etüt- Futbol Cafe- Beylikdüzü Temizlik- Çorlu Kurs- Çorlu Ders- İzmit Mimar- Hurda Bakır Kablo- Hurda Bakır Kablo- Çorlu Pronet- Çorlu Yönetim- Çorlu Apartman Yönetimi- Çorlu Marangoz- Çorlu Avukat-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden