• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ComboBox İle Sayfa Ekleme ve Silme

Katılım
29 Mart 2013
Mesajlar
429
Excel Vers. ve Dili
Office 2016 Professional Türkçe 32 Bit
UserForm üzerinde bulunan ComboBox1 nesnesine girilen veri ile Yeni Çalışma Sayfası oluşturmak istiyorum. ANASAYFA isimli çalışma sayfasını kopyalayarak Sayfa Adını ComboBox1 üzerine girilen veriden almasını istiyorum. ANASAYFA isimli sayfanın sağ tarafına ekleme yapacak. Ve aynı anda sayfaları alfabetik olarak sıralamaya sokacak.
Ayrıca AY ve Yıl verilerini de yeni oluşturulan sayfaya aktaracak. CommandButton1 ile sayfayı ekleyecek.
ComboBox1 nesnesi aynı zamanda sayfada bulunan tüm çalışma sayfalarını listeliyor.

CommanButton2 butonu ile seçilen sayfayı silmesini istiyorum.

Şimdiden teşekkür ediyorum.
 
Son düzenleme:
Merhaba,

Tag'daki kod dener misiniz?
Veri tabanınızıda merak ediyorum. Her kişi için ayrı sayfa neden açıyorsunuz.Hepsini aynı sayfada takip etmeniz raporlama açısından daha kolay olur.

Kod:
Private Sub CommandButton1_Click()
Sheets.Add.Name = ComboBox1.Text

End Sub

Private Sub CommandButton2_Click()
Application.DisplayAlerts = False
Worksheets(ComboBox1.Text).Delete
Application.DisplayAlerts = True

End Sub
 
Hocam eksik anlatmışım kusura bakmayın.
ANASAYFA isimli çalışma sayfasını kopyalayarak Sayfa Adını ComboBox1 üzerine girilen veriden almasını istiyorum. ANASAYFA isimli sayfanın sağ tarafına ekleme yapacak. Ve aynı anda sayfaları alfabetik olarak sıralamaya sokacak.
Ayrıca AY ve Yıl verilerinide yeni eklenen sayfaya aktaracak
 
Merhaba,

Yolun başında iken çok fazla sayfalı bir dosya yapmayın. Örnek veri tabanı ekleyin oradan ilerleyelim. Çok sayfalı excellerde raporlama yapmak çok zor olur.
 
Özür Diliyorum. Sonradan farkettim ve utandım.
 
Hocam çok sayfalı olmayacak zaten. O yüzden sıkıntı olmaz galiba.
Hocam ekli dosyadaki ANASAYFA hariç en fazla 10 kişi olur
 
Dener misiniz?

Kod:
Private Sub CommandButton1_Click()

    Sheets("ANASAYFA").Copy After:=Sheets(1)
ActiveSheet.Name = ComboBox1.Text

Dim i As Integer
Dim j As Integer
If Worksheets.Count = 1 Then Exit Sub
For i = 1 To Worksheets.Count - 1
For j = i + 1 To Worksheets.Count
If Worksheets(j).Name < Worksheets(i).Name Then
Worksheets(j).Move before:=Worksheets(i)
End If
Next j
Next i

End Sub

Private Sub CommandButton2_Click()
Application.DisplayAlerts = False
Worksheets(ComboBox1.Text).Delete
Application.DisplayAlerts = True

End Sub
 
Hocam elinize sağlık. Peki GÜNCELLE butonu ile ComboBox1 ile seçilen kişinin Hem Sayfa İsmini hemde hücredeki Ad Soyad alanını güncelleme işlemi yaptırabilir miyiz?
 
Hocam elinize sağlık. Peki GÜNCELLE butonu ile ComboBox1 ile seçilen kişinin Hem Sayfa İsmini hemde hücredeki Ad Soyad alanını güncelleme işlemi yaptırabilir miyiz?

Dener misiniz?

Sayfaları sıralama işlemini modülün içinde bir makroya yazarak, call ile çağırabilirsiniz. Kod kısalmış olur.

Kod:
Private Sub CommandButton3_Click()
Range("d5").Value = ComboBox1.Text
ActiveSheet.Name = ComboBox1.Text
Dim i As Integer
Dim j As Integer
If Worksheets.Count = 1 Then Exit Sub
For i = 1 To Worksheets.Count - 1
For j = i + 1 To Worksheets.Count
If Worksheets(j).Name < Worksheets(i).Name Then
Worksheets(j).Move before:=Worksheets(i)
End If
Next j
Next i
End Sub
 
Güncelleme işleminden sonra ComboBox1 içinde güncellediğim yeni sayfa ismi görünmüyor. Eskisi görünüyor. Formu kapatıp açınca güncelleniyor. Ve ard arda 2 defa güncelleme işlemi yapmama izin vermiyor hata veriyor.
 
Son düzenleme:
Aşağıdaki kodları deneyin.

Kod:
Private Sub ComboBox1_Change()
On Error GoTo 10
Worksheets(ComboBox1.Text).Select
10
ComboBox1.BackColor = QBColor(10)
CommandButton1.Enabled = True
CommandButton1.ForeColor = QBColor(0)
For i = 1 To Worksheets.Count
bulunan = Worksheets(i).Name
If ComboBox1 = bulunan Then
ComboBox1.BackColor = QBColor(12)
CommandButton1.Enabled = False
CommandButton1.ForeColor = QBColor(8)
End If
Next i
End Sub

Private Sub CommandButton3_Click()
Range("d5").Value = ComboBox1.Text
ActiveSheet.Name = ComboBox1.Text
Dim i As Integer
Dim j As Integer
If Worksheets.Count = 1 Then Exit Sub
For i = 1 To Worksheets.Count - 1
For j = i + 1 To Worksheets.Count
If Worksheets(j).Name < Worksheets(i).Name Then
Worksheets(j).Move before:=Worksheets(i)
End If
Next j
Next i
ComboBox1.Clear

Dim Sayfa As Worksheet
For Each Sayfa In Worksheets
ComboBox1.AddItem Sayfa.Name
Next

End Sub
Private Sub CommandButton1_Click()

    Sheets("ANASAYFA").Copy After:=Sheets(1)
ActiveSheet.Name = ComboBox1.Text

Dim i As Integer
Dim j As Integer
If Worksheets.Count = 1 Then Exit Sub
For i = 1 To Worksheets.Count - 1
For j = i + 1 To Worksheets.Count
If Worksheets(j).Name < Worksheets(i).Name Then
Worksheets(j).Move before:=Worksheets(i)
End If
Next j
Next i
ComboBox1.Clear
Dim Sayfa As Worksheet
For Each Sayfa In Worksheets
ComboBox1.AddItem Sayfa.Name
Next


End Sub

Private Sub CommandButton2_Click()
Application.DisplayAlerts = False
Worksheets(ComboBox1.Text).Delete
Application.DisplayAlerts = True
ComboBox1.Clear

Dim Sayfa As Worksheet
For Each Sayfa In Worksheets
ComboBox1.AddItem Sayfa.Name
Next

End Sub
 
Dosyanın En Son Güncel Halini bu mesajıma ekledim. Verdiğiniz kodları ekledim. Eksikliklerim bunlar.

1- ComboBox1 listesinde ANASAYFA liste elemanı çıkartılması lazım, görünmemeli.
2- Kişi Ekledikten sonra ve Kişi Sildikten sonra ComboBox1 arka plan rengi yeşil olarak kalıyor. Butona bastıktan sonra arka planı beyaz olmalı.
3- Eğer ComboBox1, ComboBox2, ComboBox3 alanı boş ise EKLE, GÜNCELLE,SİL VE YAZDIR butonları pasif olacak.
4- Eğer ComboBox1 içine girilen veri, Sayfa ismi olarak yok ise SİL, GÜNCELLE ve YAZDIR butonu pasif olacak.
5- ComboBox1 ile seçilen yada içine girilen veri, Sayfa ismi olarak var ise, GÜNCELLE butonu hata veriyor. Eğer AD SOYAD alanında değişiklik yaparsak hata vermiyor.
6- ComboBox1 ile seçilen kişinin sayfada bulunan AY ve YIL bilgileri ComboBox2 ve ComboBox3 üzerine gelmesi gerekiyor.
7- YAZDIR butonu ile ComboBox1 ile seçilen kişinin sayfası yazdırılması gerekiyor.

Şimdiden teşekkürler.
 
Son düzenleme:
Samet bey merhaba,

Siz bana program yazdırıyorsunuz :)
Çok vaktim yok malesef sitede araştırma yapın, çoğunu kendiniz yapabilirsiniz.
 
Yok hocam estağfurullah. Ben araştırma yapıyorum zaten. Çok az bilgim olduğu için sizden rica ettim. Öğrenmek istiyorum. Bu uygulama yüzünden uykusuzum kaç gündür.
 
Yok hocam estağfurullah. Ben araştırma yapıyorum zaten. Çok az bilgim olduğu için sizden rica ettim. Öğrenmek istiyorum. Bu uygulama yüzünden uykusuzum kaç gündür.

Vaktim oldukça madde madde cevaplamaya çalışırım.
 
Konu Günceldir...
 
Geri
Üst