Dim i As Integer Döngüsü İçinde If Koşulu ?

Katılım
12 Ekim 2010
Mesajlar
78
Beğeniler
2
Excel Vers. ve Dili
2003 türkçe
#1
Aşağıda yazılı olan döngünde İlk 3 koşulun hücre değerleri ile birbirlerine eş değer bir bağlantısı olmadığı için sorunsuz bir şekilde çalışıyor..
4. koşul 1 2 VE 3 ü koşuldaki bütün şart özellikleri barındırdığı için istenilen sonuç yerine her koşuldan bir sonuç alıyor.

4. Kuşulun istenilen sonucu verebilmesi için lütfen yardımcı olabilirmisiniz. Çok deneme yaptım ama tükendim..

Dim i As Integer

For i = 16 To 46

1. Koşul : If Range("D" & i).Value <> "" And Range("E" & i).Value = "-" Then
Range("D" & i).Value = Range("D" & i).Value & (" - ") & BitisMer.Value

2. Koşul: ElseIf Range("D" & i).Value <> "" And Range("F" & i).Value = "-" Then
Range("D" & i).Value = BaslamaMer.Value & (" - ") & Range("D" & i).Value

3. Koşul: ElseIf Range("D" & i).Value <> "" And Range("E" & i).Value <> "" And Range("F" & i).Value <> "" Then
Range("D" & i).Value = BaslamaMer.Value & (" - ") & Range("D" & i).Value & (" - ") & BitisMer.Value


4. Koşul: ElseIf Range("D" & i).Value <>"" And Range("E" & i).Value = ("-") And Range("F" & i).Value = ("-") Then
Range("D" & i).Value = Range("D" & i).Value

End If
Next i

i = Empty



Else

MsgBox "İşlem iptal edildi.", vbOKOnly


End If


End Sub
 
Katılım
31 Aralık 2014
Mesajlar
1,564
Beğeniler
31
Excel Vers. ve Dili
Excel 2010
#2
Merhaba
Döngü içeriğini, aşağıdaki gibi değiştirip deneyebilirsiniz
Kod:
'....
'...kodlar
'........'
For i = 16 To 46
If Range("D" & i).Value <> "" And Range("E" & i).Value = ("-") And Range("F" & i).Value = ("-") Then GoTo 10:

If Range("D" & i).Value <> "" And Range("E" & i).Value = "-" Then
Range("D" & i).Value = Range("D" & i).Value & (" - ") & BitisMer.Value

ElseIf Range("D" & i).Value <> "" And Range("F" & i).Value = "-" Then
Range("D" & i).Value = BaslamaMer.Value & (" - ") & Range("D" & i).Value

ElseIf Range("D" & i).Value <> "" And Range("E" & i).Value <> "" And Range("F" & i).Value <> "" Then
Range("D" & i).Value = BaslamaMer.Value & (" - ") & Range("D" & i).Value & (" - ") & BitisMer.Value

End If
10:
Next i
'.....
'.....diğer kodlar
'.....

End sub'

Veya



Kod:
'....
'...kodlar
'........'


For i = 16 To 46
If Range("D" & i).Value <> "" And Range("E" & i).Value = ("-") And Range("F" & i).Value = ("-") Then
Range("D" & i).Value = Range("D" & i).Value
Else
If Range("D" & i).Value <> "" And Range("E" & i).Value = "-" Then
Range("D" & i).Value = Range("D" & i).Value & (" - ") & BitisMer.Value

ElseIf Range("D" & i).Value <> "" And Range("F" & i).Value = "-" Then
Range("D" & i).Value = BaslamaMer.Value & (" - ") & Range("D" & i).Value

ElseIf Range("D" & i).Value <> "" And Range("E" & i).Value <> "" And Range("F" & i).Value <> "" Then
Range("D" & i).Value = BaslamaMer.Value & (" - ") & Range("D" & i).Value & (" - ") & BitisMer.Value

End If: End If
Next i
'.....
'.....diğer kodlar
'.....

End sub'
 
Katılım
12 Ekim 2010
Mesajlar
78
Beğeniler
2
Excel Vers. ve Dili
2003 türkçe
#3
Hocam ne kadar teşekkür etsem azdır. saatlerce uğraştım ama başaramamıştım. hem sorunum çözüldü hemde yazdığınız formülün ne anlatmak istediğini anlayarak bir şey daha öğrenmiş oldum. Sağol..
 
Katılım
12 Ekim 2010
Mesajlar
78
Beğeniler
2
Excel Vers. ve Dili
2003 türkçe
#4
Hocam bir şey daha sorabilirmiyim. Exel sayfasında 15 sayfa gelen alt alta dizili verilerim var. Ama boş satırlar gizlendiğinde bazen 1 sayfa bazen 5 sayfa oluyorlar otomatik olarak...
ben yazdırmak istediğimde 15 sayfa olarak gözüküyor ve gizli satırlarda boş sayfa olarak gözüküyor
bir tane yazdır butonu yapacağım ama bu sorunu nasıl çözebilirim. Birde o sayfaya girdiğimde en üstteki dolu olan satırda açılsın idtiyorum Altlarda açılıyor ve yukarı çıkmak gerekiyor...
 
Katılım
31 Aralık 2014
Mesajlar
1,564
Beğeniler
31
Excel Vers. ve Dili
Excel 2010
#5
Hocam bir şey daha sorabilirmiyim. Exel sayfasında 15 sayfa gelen alt alta dizili verilerim var. Ama boş satırlar gizlendiğinde bazen 1 sayfa bazen 5 sayfa oluyorlar otomatik olarak...
ben yazdırmak istediğimde 15 sayfa olarak gözüküyor ve gizli satırlarda boş sayfa olarak gözüküyor
.
Merhaba
"Yazdırma alanı belirle" seçilmişse gizli satırlar boş sayfa olarak görünebilir
"A-G" sütunları için şöyle deneyebilirsiniz.

Kod:
Sub yaz()
Dim x As Long
ActiveSheet.PageSetup.PrintArea = ""
x = Cells(Rows.Count, "A").End(3).Row
ActiveSheet.PageSetup.PrintArea = Range("A1:G" & x).SpecialCells(xlCellTypeConstants, 23).Cells.Address
'ActiveSheet.PrintOut
End Sub

İlgili sayfanın kod penceresinde aşağıdaki başlık altına sayfa açılınca seçilmesini istediğiniz hücreyi yazınız
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[a1].Select
End Sub
 
Katılım
12 Ekim 2010
Mesajlar
78
Beğeniler
2
Excel Vers. ve Dili
2003 türkçe
#6
Evet yazdırma alanı seçili ve seçili kalmak zorunda

son yazdığınız formülü denedim ama istediğim sonuca ulaşamadım..

Size kısaca anlatayım..
yazdırma alanı içinde alt alta 30 tane tablo var
bir tablo 1 sayfa geliyor

diğer sayfadan tabloya veri gelmezse tablonun birinin bütün satırları gizleniyor.
yazdırmak isteğincede yazdırma alanında boş bir sayfa beliriyor ve tablonun hangi sayfada olduğunu bulmak uğraştırıyor
Ben bu formülden bir şey anlamadım ActiveSheet.PageSetup.PrintArea = Range("A1:G" & x).SpecialCells(xlCellTypeConstants, 23).Cells.Address

benim istediğim gizlenen satırları ya gizleme şekli farklı bir formatta olcak ve yazdırma alanına gözükmeyecek
yani hidden yerine daha sağlam satırları pasife edecek bir formül olcak
yada yazdırma alanındaki boş satırları göstermeyecek bir yazdır formülü olmalı
 
Üst