makro hatası yüzünden excel dosyamda bazı sayfalar açılmıyor.

Katılım
22 Şubat 2012
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
makro hatası yüzünden excel dosyamda bazı sayfalar açılmıyor.

Sub buton1_Click(suAnkiAy As String)
Sheets("Rapor").Visible = xlSheetVisible

' Ay dizilerini tanımla
Dim donem1 As Variant
Dim donem2 As Variant
donem1 = Array("Eylül", "Ekim", "Kasım", "Aralık", "Ocak")
donem2 = Array("Şubat", "Mart", "Nisan", "Mayıs", "Haziran")

' Sabit çalışmalar ve rapor ifadelerini tanımla
Dim sabitCalismalar As Variant
Dim sabitCalismaRapor As Variant
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,200
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;

Bir modüle;
Sub gösterr()
For i = 1 To Worksheets.Count
Sheets(i).Visible = True
Next i
End Sub


Yada işlem yapacağın sayfa için;

Sub belirli_sayfayı_GÖSTER()
Sheets("Sayfa2").Visible = True
End Sub


Şeklinde deneyin.
İyi çalışmalar.
 
Katılım
22 Şubat 2012
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
excel dosyasını size göndersem
ben denedim ama olmadı. e-mail edresinize atsam.
Excel Vers. ve Dili Ofis 2021 TR 32 Bit
win11 64 bit yüklü
 
Son düzenleme:
Katılım
22 Şubat 2012
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
HATA VEREN MAKRONUN TAMAMINI ATIYORUM
DÖNEM SONU RAPOR OLUŞTUR DEDİĞİMDE
MİCROSOFT VİSUAL BASİC
Run-Time Error -'9'
Subscribt out of range HATASI ALIYORUM... KODLAR AŞAĞIDA-ŞİMDİDEN TEŞEKKÜR EDERİM.

Sub buton1_Click(suAnkiAy As String)
Sheets("Rapor").Visible = xlSheetVisible

' Ay dizilerini tanımla
Dim donem1 As Variant
Dim donem2 As Variant
donem1 = Array("Eylül", "Ekim", "Kasım", "Aralık", "Ocak")
donem2 = Array("Şubat", "Mart", "Nisan", "Mayıs", "Haziran")

' Sabit çalışmalar ve rapor ifadelerini tanımla
Dim sabitCalismalar As Variant
Dim sabitCalismaRapor As Variant

sabitCalismalar = Array("Rehberlik Yürütme Komisyonu Toplantısı", "Sınıf Rehberlik Planının Hazırlanması", _
"RİBA Uygulaması", "Sınıf Risk Analizi", "Öğrenci Bilgi Formlarının Doldurulması", _
"Oturma Düzeni", "Veli Toplantısı", "Veli Ziyaretleri", "BEP 'lerin Oluşturması", _
"Anket, Envanter veya Araştırma Çalışmaları", "Toplantı (Diğer)", _
"Psikososyal (Hayatımızdaki Kahramanlar)", "Psikososyal (Bana Dokunulduğunda Ne Hissediyorum)", _
"Psikososyal (Parlayan Güneşim)", "Psikososyal (Sevgi Küpü)", "Psikososyal (Doğrular ve Yanlışlar)", _
"Psikososyal (Doğal Yüzler)", "Psikososyal (İşin Aslı)", "Psikososyal (Duygı Düşünce Kartları)", _
"Psikososyal (Duygu Listem)", "Psikososyal (Ortak Özelliklerimiz)", "Psikososyal (Ergenim Farkındayım)", _
"Psikososyal (Doğal Tepkiler)", "BEP 'lerin Oluşturulması")

sabitCalismaRapor = Array("Rehberlik Yürütme Komisyonu Toplantısı Yapıldı", "Sınıf Rehberlik Planı Hazırlandı", _
"RİBA Uygulandı", "Sınıf Risk Analizi Hazırlandı", "Öğrenci Bilgi Formları Dolduruldu", _
"Sınıf Oturma Düzeni Ayarlanarak Plana İşlendi", "Veli Toplantısı Yapıldı", "Veli Ziyareti Yapıldı", _
"BEP'ler Oluşturuldu", "Anket/Envanter Uygulandı", "Toplantı Yapıldı", _
"Psikososyal (Hayatımızdaki Kahramanlar) Etkinliği Uygulandı", "Psikososyal (Bana Dokunulduğunda Ne Hissediyorum) Etkinliği Uygulandı", _
"Psikososyal (Parlayan Güneşim) Etkinliği Uygulandı", "Psikososyal (Sevgi Küpü) Etkinliği Uygulandı", _
"Psikososyal (Doğrular ve Yanlışlar) Etkinliği Uygulandı", "Psikososyal (Doğal Yüzler) Etkinliği Uygulandı", _
"Psikososyal (İşin Aslı) Etkinliği Uygulandı", "Psikososyal (Duygı Düşünce Kartları) Etkinliği Uygulandı", _
"Psikososyal (Duygu Listem) Etkinliği Uygulandı", "Psikososyal (Ortak Özelliklerimiz) Etkinliği Uygulandı", _
"Psikososyal (Ergenim Farkındayım) Etkinliği Uygulandı", "Psikososyal (Doğal Tepkiler) Etkinliği Uygulandı", _
"BEP'ler Oluşturuldu")

' Geçerli ayı bul (tam ad al)
' Dim suAnkiAy As String
' suAnkiAy = MonthName(Month(Date), False) ' Ayın tam adını alır

' Rapor sayfası ve başlangıç hücresini tanımla
Dim raporSayfa As Worksheet
Set raporSayfa = ThisWorkbook.Sheets("Rapor")

Dim baslangicSatiri As Integer
baslangicSatiri = 8

' Geçerli ay hangi dizideyse, ilgili ayları ve çalışmalarını yazdır
If IsInArray(suAnkiAy, donem1) Then
Call AyVeCalismaYazdir(donem1, baslangicSatiri, raporSayfa, sabitCalismalar, sabitCalismaRapor)
ElseIf IsInArray(suAnkiAy, donem2) Then
Call AyVeCalismaYazdir(donem2, baslangicSatiri, raporSayfa, sabitCalismalar, sabitCalismaRapor)
Else
MsgBox "Geçerli ay tanımlı değil."
End If

Call isimlendir

' Rapor sayfasını aktif yap
raporSayfa.Activate

' İşlem tamamlandığında mesaj ver
If suAnkiAy = "Eylül" Then
MsgBox "1. Dönem sonu çalışma raporu başarı ile hazırlanmıştır."
ElseIf suAnkiAy = "Şubat" Then
MsgBox "2. Dönem sonu çalışma raporu başarı ile hazırlanmıştır."
End If
End Sub

' Ayları ve çalışmaları yazdıran prosedür
Sub AyVeCalismaYazdir(aylar As Variant, baslangicSatiri As Integer, raporSayfa As Worksheet, _
sabitCalismalar As Variant, sabitCalismaRapor As Variant)
Dim i As Integer
Dim calismaSayfa As Worksheet
Set calismaSayfa = ThisWorkbook.ActiveSheet ' Çalışmaların bulunduğu sayfa

Dim calismaVerisi As String
Dim calismaAralik As Range
Dim calismaCell As Range
Dim calismaListesi As String
Dim raporMetni As String

' Ay ve çalışma alanlarını tanımla
For i = LBound(aylar) To UBound(aylar)
raporSayfa.Cells(baslangicSatiri, 1).Value = aylar(i)

' Çalışmaların olduğu hücre aralıklarını ay ismine göre belirle
Select Case aylar(i)
Case "Eylül": Set calismaAralik = calismaSayfa.Range("B5:B11")
Case "Ekim": Set calismaAralik = calismaSayfa.Range("D5:11")
Case "Kasım": Set calismaAralik = calismaSayfa.Range("F5:F11")
Case "Aralık": Set calismaAralik = calismaSayfa.Range("B13:B19")
Case "Ocak": Set calismaAralik = calismaSayfa.Range("D13:19")
Case "Şubat": Set calismaAralik = calismaSayfa.Range("F13:F19")
Case "Mart": Set calismaAralik = calismaSayfa.Range("B21:B27")
Case "Nisan": Set calismaAralik = calismaSayfa.Range("D21:27")
Case "Mayıs": Set calismaAralik = calismaSayfa.Range("F21:F27")
Case "Haziran": Set calismaAralik = calismaSayfa.Range("B29:B35")
End Select

' Çalışmaları sabitCalismalar dizisinde arayıp, sabitCalismaRapor dizisini kullanarak rapor metnini oluştur
calismaListesi = ""
For Each calismaCell In calismaAralik
If calismaCell.Value <> "" Then
raporMetni = FindInArray(calismaCell.Value, sabitCalismalar, sabitCalismaRapor)
If calismaListesi <> "" Then
calismaListesi = calismaListesi & Chr(10) & raporMetni
Else
calismaListesi = raporMetni
End If
End If
Next calismaCell

' Eğer boş değilse, çalışmaları B sütununa yazdır
If calismaListesi <> "" Then
raporSayfa.Cells(baslangicSatiri, 2).Value = calismaListesi
End If

' Sonraki satıra geç
baslangicSatiri = baslangicSatiri + 1
Next i
End Sub

Function FindInArray(val As String, arr As Variant, raporArr As Variant) As String
Dim i As Integer
Dim valWithoutNumber As String

' Dizide arama yap
For i = LBound(arr) To UBound(arr)
If arr(i) = val Then
FindInArray = raporArr(i)
Exit Function
End If
Next i

' Eğer dizide bulunmazsa ve val bir sayı ile başlıyorsa
If IsNumeric(Left(val, 1)) Then
' İlk sayı ve "-" işaretinden sonrasını al
valWithoutNumber = Trim(Mid(val, InStr(val, "-") + 1))
' Rapor ifadesini oluştur
FindInArray = """" & valWithoutNumber & """ kazanımı için etkinlik uygulandı."
Else
' Dizide bulunmadıysa boş bir string döndür
FindInArray = ""
End If
End Function

' Dizide bir elemanın olup olmadığını kontrol eden yardımcı fonksiyon
Function IsInArray(val As String, arr As Variant) As Boolean
Dim i As Integer
For i = LBound(arr) To UBound(arr)
If arr(i) = val Then
IsInArray = True
Exit Function
End If
Next i
IsInArray = False
End Function
Sub isimlendir()

Dim ogretmen As String
Dim mudur As String
Dim okul As String
Dim yil As String
Dim sinif As String

Dim calismaSayfa As Worksheet
Dim raporSayfa As Worksheet
Set calismaSayfa = ThisWorkbook.ActiveSheet ' Çalışmaların bulunduğu sayfa
Set raporSayfa = Sheets("Rapor")

ogretmen = calismaSayfa.Range("D34").Text
mudur = calismaSayfa.Range("F34").Text
okul = calismaSayfa.Range("A1").Text
yil = calismaSayfa.Range("A2").Text
sinif = calismaSayfa.Range("B3").Text

sinif = Left(sinif, Len(sinif) - 6) & " ÇALIŞMALARI DÖNEM SONU RAPORU"

raporSayfa.Range("a1") = okul
raporSayfa.Range("a2") = yil
raporSayfa.Range("a3") = sinif
raporSayfa.Range("a15") = ogretmen
raporSayfa.Range("d15") = mudur

End Sub

Sub secenek()
'Dim secenek
'Dim suAnkiAy As String
'secenek = MsgBox("Birinci dönem için dönem sonu raporu çıkarmamı istiyorsan 'Evet' butonuna tıkla," & Chr(10) & Chr(10) & "İkinci dönem için dönem sonu raporu çıkarmam için 'Hayır' butonuna tıkla," & Chr(10) & Chr(10) & "Rapor oluşturmak istemiyorsan 'İptal' butonuna tıkla.", vbYesNoCancel, "Seçenekler")
'If secenek = vbYes Then
'suAnkiAy = "Eylül"
'Call buton1_Click(suAnkiAy)
'ElseIf secenek = vbNo Then
'suAnkiAy = "Şubat"
'Call buton1_Click(suAnkiAy)
'Else
'MsgBox "İşlem tarafınızca iptal edildi"
'End If
UserForm4.Show

End Sub
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,249
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Dosyanızı dosya.co gibi bir paylaşım sitesinde paylaşırsanız kontrol edelim.

Bazı sayfalar açılmıyor derken sayfalar hiç görünmüyor mu yoksa açmak istediğinizde kapanıyor mu? Yada tam olarak açılmıyordan kastınız nedir?
Açılmayan sayfaların isimlerini de söylerseniz iyi olur.
 
Katılım
22 Şubat 2012
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
DÖNEM SONU RAPOR OLUŞTUR DEDİĞİMDE
MİCROSOFT VİSUAL BASİC
Run-Time Error -'9'
Subscribt out of range HATASI ALIYORUM.

HER SINIFIN REHBERLİK DÖNEM SONU RAPORU ALMAK İSTİYORUM
11 SINIFIN DA RAPORUNU AYRI AYRI ALMAK İSTEDİĞİMDE BU HATAYI VERİYOR
EXCEL AÇILDIĞINDA DA BU HATAYI VERİYOR. TAMAM DEDĞİMDE UYARI GİDİYOR AMA DÖNEM SONU RAPORU OLUŞTUR BUTONUNA TIKLADIĞIMDA HER SAYFADA BU HATAYI VERİYOR
 
Katılım
22 Şubat 2012
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
NORMALDE SINIFLAR BAŞLANGIÇTA YOK.
ÇOKLU PLAN OLUŞTUR BUTONUNA TIKLAYINCA SINIFLAR OTOMATİK OLUŞUYOR.
AMA DÖNEM SONU RAPORLARINI VERMİYOR
TEŞEKKÜR EDERİM
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,249
Excel Vers. ve Dili
2019 Türkçe
İlk olarak lütfen mesajlarınızı küçük harflerle ve imla kurallarına uyarak yazın ki sizi net anlayabilelim.

Kodlarda "Rapor" adında bir sayfa geçiyor ama dosyada böyle bir sayfa yok. Dosyaya "Rapor" adında bir sayfa eklemelisiniz.
Bunun dışında bir hata almadım.

Rapor sayfası ekledikten sonra da hata alırsanız aşağıdaki sorularıma cevap verin.

Bazı sayfalar açılmıyor derken neyi kast ediyorsunuz?
Açılmayan sayfaların isimlerini de söylerseniz iyi olur.
 
Katılım
22 Şubat 2012
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
Çok basit bir sorunu çözemediğim için üzgünüm. Size çok teşekkür ediyorum. Rapor sayfası oluşturdum. Sorun çözüldü. Çok sağolun. Okul için gerekliydi.
 
Üst