Hücrelere Artan Değer Yazdırma

Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Merhabalar Değerli Üstatlar;

Bir program kullanıyorum ve bu programda 3 boyutlu bir koordinat alanı var (X, Y, Z yani sağ, yukarı ve yükseklik diyebiliriz). Ben bu programda bir alanda krigleme yapıyorum. Örneğin; X=30 Y=48 Z=25 değerlerine sahip bir alanda 30x48x25=36000 birimlik bir alan olmuş oluyor. Her bir birim birer karelik alan dersek, bu alanlarda verdiği değerlerin koordinatlarını almam gerekiyor. Daha doğrusu koordinat atamam gerekiyor.

Mesela ben excelde X Y Z hücrelerine bu alanın değerlerini yazacam ve X Y Z sütunlarının altın 1,1,1 değerlerinden başlayarak aşağıya doğru koordinatı arttırarak otomatik yazmasını istiyorum. Bilemiyorum nasıl anlatacağımı ama örnek dosyayı ekliyorum. XYZ sütunlarının olduğu yerde ben elle yazdım koordinatları. Bunun otomatik olmasını istiyorum.

Mantık olarak kod ile uğraşmıştım bir dönem şuan yazamam tabi ama hani (x=0; x++; x=25) şeklinde fonksiyon yazıyorduk ya. Bunun anlamı X=0'dan başlayacak ve birer birer artacak ta ki 25 olana kadar. Bu mantığı excelde nasıl yapabiliriz? Yardımcı olanlara şimdiden teşekkürler ve duacınız olurum.

Saygılarımla.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
Örnak dosya yok.
.
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Merhabalar;
Dosya boyutu büyük olunca yüklememiş, ben de farketmemişim. Satırların bir çoğunu sildim şimdi oldu hocam.
 

Ekli dosyalar

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Sayın @FallenPaladin
- Dosyanızda bulunan A,B,C,D,E sütunlarındaki rakamsal değerlerin bir etkisi var mı?
- X, Y,Z başlıklı sıralamalarda görülen
X değerleri hepsi 1
Y değerleri Hepsi 1
Z değerleri ise 29 adet 1, 30 adet 2 ve 30 adet 3 sıralanmış.

Bu yazılışlar gelişigüzel mi, yoksa X, Y ve Z'nin sıralanmasının bir koşulu var mı?

Daha detaylı açıklama yapabilirseniz, cevap bulmanız daha kolay olacaktır.
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Sayın @turist sanırım tam ifade edemiyorum kendimi. Dosyada A,B,C,D,E sütunlarındaki değerler, bir simülasyon sonucu oluşan değerlerdir. Onların sonuçlarının ne olduğunun önemi yok. XYZ ise her bir satırdaki değerin koordinat düzlemindeki yerini ifade ediyor. Yani karelere bölünmüş bir alan düşünürsek eğer, ve her kareyi bir birim olarak kabul edersek ilk değer her zaman 1,1,1 noktasından başlayacak.

İlk satırdan itibaren koordinatların nasıl artması gerektiğini şöyle anlatayım. Diyelimki alanımız 3e3 bir alan. yani uzunluk, genişlik ve yüksekliği 3 birim. Bu durumda koordinat aşağıdaki şekilde yazılacak. Burda 27 satır veri elde ettik ki bu da bizim 3x3x3 alanımıza tam uyumlu demektir çünkü 3x3x3=27. Ben istiyorum ki alanımın boyutunu gireceğim XYZ olarak. Örneğin 30x45x30 yazacam bir yere ve excel bana aşağıda yaptığım örneği bu yazdığım sonuca kadar alt alta yazacak hücrelere. Umarım anlatabilmişimdir.

(3x3x3 alan örneği)
X-Y-Z
1-1-1
1-1-2
1-1-3
1-2-1
1-2-2
1-2-3
1-3-1
1-3-2
1-3-3
2-1-1
2-1-2
2-1-3
2-2-1
2-2-2
2-2-3
2-3-1
2-3-2
2-3-3
3-1-1
3-1-2
3-1-3
3-2-1
3-2-2
3-2-3
3-3-1
3-3-2
3-3-3
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba, umarım yanlış anlamadım.

Sayfada F1, G1 ve H1 hücresine sayılar yazın ve aşağıdaki kod'u çalıştırın.
Rich (BB code):
Sub LISTE()
If WorksheetFunction.CountBlank([F1:H1]) > 0 Then
    MsgBox "F1, G1 ve H1 hücrelerine sayı giriniz.", vbCritical, "..:: Ömer BARAN ::.."
    Exit Sub
Else
    If Cells(Rows.Count, 6).End(3).Row > 1 Then Range("F2:H" & Rows.Count).ClearContents
    If ([F1] * [G1] * [H1]) + 1 >= Rows.Count Then
        MsgBox "Mevcut verilere göre oluşacak liste sayfadaki satır sayısından fazla," & _
            vbLf & "bu  nedenle işlem başlatılamıyor.", vbCritical, "..:: Ömer BARAN ::.."
        Exit Sub
    End If
    Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
    For a = 1 To [F1]
        For b = 1 To [G1]
            For c = 1 To [H1]
                sat = Cells(Rows.Count, 6).End(3).Row + 1
                Cells(sat, 6) = a: Cells(sat, 7) = b: Cells(sat, 8) = c
            Next
        Next
    Next
    Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
    MsgBox [F1] * [G1] * [H1] & " satırlık liste oluşturuldu.", vbInformation, "..:: Ömer BARAN ::.."
End If
End Sub
 
Son düzenleme:
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Değerli Hocam;

çok ama çok teşekkür ederim. Süpersiniz. Muhteşem şekilde çalıştı. Beni öyle bir yükten kurtardınız ki anlatamam. Allah razı olsun.

Saygılarımla
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Hocam peki bir sorabilir miyim? Şimdi ben bu excel sayfasını benim şablonum gibi yapsam. Yani her koordinat eklemek istediğimde bu sayfayı kullanacağım. Buraya bir buton koysak, f1,G1,H1 hücrelerinde değişiklik yaptığımda ve butona bastığımda o koordinatları silip yeni yazdığım değerlere göre koordinatları her seferinde yeniden oluştursa olur mu acaba?

Saygılarımla.
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Ya mesajlar flood oldu belki ama yaptım hocam. Bir tane buton ekledim ona tıklayınca hesaplasın diye. anca bunu yapabiliyorum ve istediğim gibi oldu. Tekrar ellerinize sağlık, çok teşekkür ederim.
Saygılarımla
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,017
Excel Vers. ve Dili
2013 Türkçe
Ömer Bey'in kodlarını diziye alırsanız daha hızlı çalışır.

Sub LISTE()
Range("F2:H100000") = ""
If WorksheetFunction.CountBlank([F1:H1]) > 0 Then
MsgBox "F1, G1 ve H1 hücrelerine sayı giriniz.", vbCritical, "..:: Ömer BARAN ::.."
Exit Sub
Else
If Cells(Rows.Count, 6).End(3).Row > 1 Then Range("F2:H" & Rows.Count).ClearContents
If ([F1] * [G1] * [H1]) + 1 >= Rows.Count Then
MsgBox "Mevcut verilere göre oluşacak liste sayfadaki satır sayısından fazla," & _
vbLf & "bu nedenle işlem başlatılamıyor.", vbCritical, "..:: Ömer BARAN ::.."
Exit Sub
End If

Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
x = [F1] * [G1] * [H1]
r = 0
ReDim tablo(x, 2)
For a = 1 To [F1]
For b = 1 To [G1]
For c = 1 To [H1]
tablo(r, 0) = a
tablo(r, 1) = b
tablo(r, 2) = c
r = r + 1
Next
Next
Next
Range("F2").Resize(x, 3) = tablo
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox [F1] * [G1] * [H1] & " satırlık liste oluşturuldu.", vbInformation, "..:: Ömer BARAN ::.."
End If
End Sub
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Teşekkürler Sayın OKUMUŞ.
Şu an bilgisayar başında değilim.
Fark ettiğim bir konu var o da; varsa eski verilerin silinmesine ilişkin.
Yaptığınız eklemelere baktığımda, ilk satır olarak eklediğiniz
Range("F2:H100000") = ""
satırı fazla olmuş, zira eski verilerin silinmesi işlemi kod'da var olan aşağıdaki kısım ile gerçekleştiriliyor zaten.
If Cells(Rows.Count, 6).End(3).Row > 1 Then Range("F2:H" & Rows.Count).ClearContents
Sayın FallenPaladin, forum sayfalarının sağ üst kısmındaki ARA bölümüne "hücre içeriği değişince makro" şeklinde bir ifadeyle arama yaparsanız, düğme kullanmadan kodların nasıl çalıştırılacağına ilişkin örnekler bulabilirsiniz.
 
Son düzenleme:

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,017
Excel Vers. ve Dili
2013 Türkçe
Evet o satır fazla olmuş. O kismi gözden kaçmış. O kısmı silmek gerek.
 
Katılım
2 Temmuz 2009
Mesajlar
51
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2021
Ömer bey ve Muhammet bey;

İlgiliniz için çok teşekkür ederim. Dediğiniz şekilde yapacağım.

Saygılar
 
Üst