Soru Vba Union Dizi yardım

Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Evet,Sayfa1 deki verileri alıyor.
Sonsat değişkeni için.:cool:
Kod:
sheets("Sayfa1").Range("A3:A" & sonsat & ",B3:B" & sonsat & ",C3:C" & sonsat)
Böyle olacağını hiç düşünmemiştim :)
Yani her aralığın başına range ekliyordum.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,239
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Birde zaten denemede bu kodla alınan verilerde diziye aktarırken tümü aktarılmıyordu.Kafamı karıştırdınız iyice :)
Benim sorunum dizi içe alırken tüm verilerin alınması döngüsüz.Yoksa union ilede oluyor aynı yöntem :)
Verilen aralıktaki veriler aktarılır.Belki de dikkat etmediniz.:cool:
 
Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Tamam bugün iyice bir deneyeceğim özelliklede son kodu.Sağolunuz.
 
Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Buyurun.:cool:
Kod:
Set alan = sheets("Sayfa1").Range("A3:A6,A10:A13,A16:A20")

C#:
Dim alan As Range
    
Hocam kodu alttaki gib yapınca tek seferde hepsini aktarmıyor.
Bunu nasıl hallederiz.

Alttaki örnek kodda hep range içine bir range daha ekliyordum,sayenizde bu olaydan kurtulduk.

    [B:B] = Empty
    Set alan = Sheets("Sayfa1").Range("A3:A6,A10:A13,A16:A20")
    Range("B3").Resize(500, 1) = alan.Value
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,239
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
C#:
Dim alan As Range
  
Hocam kodu alttaki gib yapınca tek seferde hepsini aktarmıyor.
Bunu nasıl hallederiz.

Alttaki örnek kodda hep range içine bir range daha ekliyordum,sayenizde bu olaydan kurtulduk.

    [B:B] = Empty
    Set alan = Sheets("Sayfa1").Range("A3:A6,A10:A13,A16:A20")
    Range("B3").Resize(500, 1) = alan.Value
Buyurun.:cool:
Kod:
Set alan = Sheets("Sayfa1").Range("A3:A6,A10:A13,A16:A20")
ReDim arr(1 To 500, 1 To 1)
For Each veri In alan

        say = say + 1
        arr(say, 1) = veri
    Next
 
    [B:B] = Empty
    Range("B3").Resize(say, 1) = arr

    Set alan = Nothing: Set veri = Nothing: Erase arr
 
Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Buyurun.:cool:
Kod:
Set alan = Sheets("Sayfa1").Range("A3:A6,A10:A13,A16:A20")
ReDim arr(1 To 500, 1 To 1)
For Each veri In alan

        say = say + 1
        arr(say, 1) = veri
    Next

    [B:B] = Empty
    Range("B3").Resize(say, 1) = arr

    Set alan = Nothing: Set veri = Nothing: Erase arr
Abey tek seferde döngüsüz olma olasılığı yüzde kaç :)
 

Suskun

Altın Üye
Altın Üye
Katılım
27 Kasım 2006
Mesajlar
292
Excel Vers. ve Dili
Excel 19
Altın Üyelik Bitiş Tarihi
24.05.2032
Alternatif

Kod:
    Dim alan As Range
    Set alan = Union(Range("A3:A6"), Range("A10:A13"), Range("A16:A20"))
    'Set alan = Range("A3:A6,A10:A13,A16:A20")
    alan.Select
    '[B:B] = Empty
    Range("B3:B503").ClearContents
    Selection.Copy Range("B3")
    Set alan = Nothing
 
Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Alternatif

Kod:
    Dim alan As Range
    Set alan = Union(Range("A3:A6"), Range("A10:A13"), Range("A16:A20"))
    'Set alan = Range("A3:A6,A10:A13,A16:A20")
    alan.Select
    '[B:B] = Empty
    Range("B3:B503").ClearContents
    Selection.Copy Range("B3")
    Set alan = Nothing
Teşekkürler @Suskun hocam.Kodunuzu biraz daha düzenmedim.

C#:
 Dim alan As Range
    
    Set alan = Sheets("Sayfa1").Range("A3:A6,A10:A13,A16:A20")
    Range("B3:B" & Rows.Count).ClearContents
    alan.Copy Range("B3")
    Application.CutCopyMode = False
    Set alan = Nothing
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Şöyle bir şey işinize yarar mı?

Kod:
Sub Test()
    Sheets("Sayfa1").Range("A3:A6,A10:A13,A16:A20").Copy Destination:=Range("B3")
End Sub
.
 
Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Sağolunuz hocam hertürlü oluyor.
Sadece merak ettiğim alttaki gibi neden olmuyor.Föngüye girince tüm veriler geliyor fakat topluca olmuyor.

Kod:
Set alan = Sheets("Sayfa1").Range("A3:A6,A10:A13,A16:A20")
    Range("B3").Resize(alan.count, 1) = alan.Value
 
Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Range("B3").Resize(alan.count, 1).value = alan.Value

Birde müsait olunca .value eklenmiş haliyle deneyeyim ne olacak sonuç.
 
Üst