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 06-12-2017, 19:31   #1
cengiz123
 
Giriş: 25/03/2017
Mesaj: 86
Excel Vers. ve Dili:
2013
Varsayılan Ardışık sayıları gruplama

Merhabalar
Bir konuda yardımınıza ihtiyacım var.

İkinci,üçüncü,dördüncü satırda bazı ardışık sayılar var.
2.satırda hücreler sırasıyla
33 34 35 37 38 39 40 44 47 48 49 50

3.satırda hücreler sırasıyla
104 105 106 110 111 112

4.satırda hücreler sırasıyla
243 244 245 246 249 250 251 255 256

İstediğim sonuç ise;
33den35e_37den40a_44_47den50ye

104den106ya_110dan112ye

243den246ya_249dan251e_255_256

Bunun gibi 20 satıra kadar uzanabilir.
Kural ise:
3 ve üzeri ardışık sayıda örneğin 33den 38e gibi
1 ve 2 ardışık sayı için örneğin 33 37 38 için 33_37_38

Yardımlarınızı rica ederim

Bu mesaj en son " 06-12-2017 " tarihinde saat 20:35 itibariyle cengiz123 tarafından düzenlenmiştir....
cengiz123 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 08:38   #2
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,428
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Bu rakamların her bir satırında, her bir rakam ayrı bir hücrede mi? Aynı hücre içinde mi?

den, dan önemli mi?
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 08:55   #3
askm
Altın Üye
 
Giriş: 04/06/2005
Şehir: k.maraş
Mesaj: 1,698
Excel Vers. ve Dili:
2010-2016
Varsayılan

Sorunuzu örnek dosya ile anlatırsanız daha çabuk çözüm alırsınız.
__________________
excel 2010- türkçe
askm Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 11:22   #4
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,428
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Kontrol ediniz.
Den, dan, e,a yerine başka bir şey kullanın

https://www.dosyaupload.com/586x

Sayılar B2 den başlamalı, sonucları her bir satırda A ya yazılmaktadır.


Not:Kod günceldir, dosya değil. Kodu dosyaya yapıştırın.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub ardisik_birlestir()
   sonsatir = Cells(Rows.Count, "A").End(3).Row
   Range("A2:A" & sonsatir).Clear
   sonsatir = Cells(Rows.Count, "B").End(3).Row
   
   For i = 2 To sonsatir
     sonsutun = Cells(i, Columns.Count).End(xlToLeft).Column
     veri = ""
     For k = 2 To sonsutun
        veri = veri & Cells(i, k).Value & " "
     Next k
     veri = Mid(veri, 1, Len(veri) - 1)
     liste = Split(veri, " ")
     listesay = UBound(liste)
     ekle = False
     sonuc = ""
     eskisayi = ""
     For j = LBound(liste) To UBound(liste)
        sayi1 = 0
        sayi2 = 0
        sayi3 = 0
        sayi1 = 0 + liste(j)
        If j + 1 <= listesay And ekle = False Then
           sayi2 = 0 + liste(j + 1)
        Else

        End If
        
        If j + 2 <= listesay And ekle = False Then
           sayi3 = 0 + liste(j + 2)
        Else
        
        End If
        
        If sayi1 + 1 = sayi2 And sayi2 + 1 = sayi3 And ekle = False Then
           ilksayi = sayi1
           eskisayi = sayi3
     
           ekle = True
           If j = listesay Then
           ElseIf j + 2 = listesay Then
             j = j + 2
           Else
             j = j + 2
             GoTo son
           End If
        End If
        
        If sayi1 + 1 = sayi2 And sayi2 + 1 <> sayi3 And ekle = False Then
           eskisayi = ""
           If sonuc = "" Then
              sonuc = sayi1 & "_"
           Else
              sonuc = sonuc & sayi1 & "_"
           End If
           ekle = False
           GoTo son
        End If
        
        If sayi1 + 1 <> sayi2 And ekle = False Then
           eskisayi = ""
           If sonuc = "" Then
              sonuc = sayi1 & "_"
           Else
              sonuc = sonuc & sayi1 & "_"
           End If
           ekle = False
           GoTo son
        End If
        
        If ekle And eskisayi + 1 = sayi1 Then
           eskisayi = sayi1
           If j = listesay Then
           Else
             GoTo son
           End If
        End If
        
        If ekle And sonsayi + 1 <> sayi1 Then
           If sonuc = "" Then
              sonuc = ilksayi & "den" & eskisayi & "e_"
           Else
              sonuc = sonuc & ilksayi & "den" & eskisayi & "e_"
           End If
           
           ekle = False
           If j <> listesay Then j = j - 1
           If j = listesay And ekle = False Then j = j - 1
        End If
        
        eksisayi = sayi1
son:
     Next
     sonharf = Right(sonuc, 1)
     If sonharf = "_" Then
       sonuc = Left(sonuc, Len(sonuc) - 1)
     End If
     satir = satir + 1
     Cells(i, 1).Value = sonuc
   Next i
  
End Sub
__________________
www.asriakdeniz.com

Bu mesaj en son " 09-12-2017 " tarihinde saat 09:07 itibariyle asri tarafından düzenlenmiştir....
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 12:18   #5
cengiz123
 
Giriş: 25/03/2017
Mesaj: 86
Excel Vers. ve Dili:
2013
Varsayılan

asri hocam, kodu denedim. maalesef çalışmadı..
sadece ilk 33,104,243 değerlerini B sütununa atıyor.
cengiz123 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 12:27   #6
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,428
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Alıntı:
cengiz123 tarafından gönderildi Mesajı Görüntüle
asri hocam, kodu denedim. maalesef çalışmadı..
sadece ilk 33,104,243 değerlerini B sütununa atıyor.
@askm nin dediği noktaya geldik.

Örnek dosya yükleyiniz
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 17:08   #7
cengiz123
 
Giriş: 25/03/2017
Mesaj: 86
Excel Vers. ve Dili:
2013
Varsayılan

https://www.dosyaupload.com/9kcY

dosyayı yükledim. N sütüununda olması gerekenleri yazdım.
cengiz123 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-12-2017, 20:00   #8
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,428
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Alıntı:
cengiz123 tarafından gönderildi Mesajı Görüntüle
https://www.dosyaupload.com/9kcY

dosyayı yükledim. N sütüununda olması gerekenleri yazdım.

Ben tüm sayılar aynı hücrede arada boşluk var olarak yazmıştım.
Kod güncellendi. Dosya eklendi.
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-12-2017, 14:39   #9
cengiz123
 
Giriş: 25/03/2017
Mesaj: 86
Excel Vers. ve Dili:
2013
Varsayılan

Asri hocam elinize sağlık. Ben baya uğraştım ama yapamamıştım. Kodu görünce niye yapamadığımı
Çok teşekkürler
cengiz123 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-12-2017, 22:56   #10
cengiz123
 
Giriş: 25/03/2017
Mesaj: 86
Excel Vers. ve Dili:
2013
Varsayılan

Asri hocam merhaba
601 605 607 608 609 611 612 613 617
gibi bir dizim olduğunda 617 yi gruplamada göstermiyor.
hata olabilir mi kodda?
cengiz123 Ç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 23:48


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- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Gebze Emlak- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri- Çorlu Çelik Konstruksiyon- Çorlu Dans- Edirne Serbest Muhasebeci- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden