Excel - Çalışma sayfası otomatik jeneratörü
- Konu
- Çözüm
- Not
Konu
Zaman çizelgesine yerleştirmem gereken tüm bilgileri içeren bir ad sayfasına ve çalışanın dolduracağı zaman çizelgesine sahip bir ana sayfaya sahibim. Her hafta yeni bir zaman çizelgesi kümesini otomatik olarak nasıl oluşturabilirim? Sekmedeki çalışanın adını taşıyan sayfaları isimlendirmelerini istiyorum, böylece kartlarını bulurlar ve isim sayfasındaki tüm bilgileri kendi kartlarına koyarlar. Alfabetik sıraya göre listeye yeni isimler eklendiğinde veya silindiğinde, yeni kartı isimlerle oluşturacak ve listedeki her kartta doğru bilgiyi üretecektir. Bunu nasıl yapabilirim? Bu konuda yeniyim ve yapılması gereken son şey bu.
Çözüm
Adınızın ve şablonunuzun nasıl göründüğü hakkında hiçbir fikrim yok
Dosyanızın bir kopyasını alın
Kodu okuyup uygun değişiklikleri yapın, sizin için her şeyi yorumladım.
- Vbe'yi açmak için ALT + F11 tuşlarına basın
- Ekle'ye tıklayın ve modülü seçin
- Aşağıdaki kodu kopyalayıp yapıştırın:
Alt construcTimeSheets () Dim sMasterNameSheet As String 'çalışan bilgisi olan sayfanın adı Dim sTimeSheetTempate As String' zaman çizelgesi şablonu olan sayfanın adı Dim iMaxNameCol As Tam Sayı 'altında en çok doldurulmuş satırların bulunduğu sütun numarası Dim lMaxNameRow s 'Temp temp değişkeni olarak Dim VWarning As Variant' silme uyarısı '################################# İHTİYAÇLARINIZI İHTİYACINIZ İÇİN ÖZELLEŞTİRMEK İÇİN BURAYA ÖZELLEŞTİRİN ############################# sMasterNameSheet = "Adlar" 'bu, çalışan bilgisine sahip sayfanın adıdır sTimeSheetTempate = "Timesheet Template "'Bu, zaman çizelgesi şablonu olan sayfanın adıdır Dim iNameCol As Integer' çalışan bilgi sayfasındaki sütun, ad bilgisine sahiptir (diğer benzer sütunları ekleyin) Dim sEmpName As String 'çalışanın adı iMaxNameCol = 1' çalışan sayfası iNameCol = 1 'içinde doldurulmuş maksimum satır sayısına sahip. oyee ismi vWarning = MsgBox ("Bu" _ & sMasterNameSheet & "ve" & sTimeSheetTempate _ & "dışındaki tüm sayfaları siler. "Conitnue", vbCritical + vbDefaultButton2 + vbYesNo) 'devam etmek istemediğiniz takdirde Evet tuşuna basın. VWarning vbYes sonra Sub' Subit 'sayfalarını inceleyin. döngü sTemp = mysheet.Name 'eğer sayfa incelendiğinde iki kritik sayfa değilse, onu silin. ((UCase (Trim (sTemp))) UCase (Trim (sMasterNameSheet))) _ ve _ (UCase (Trim (sTemp)) UCase (Trim ( sTimeSheetTempate)))) Sonra mysheet. Sonraki Sayfalar Sonunda Sonunu Sil (sMasterNameSheet) .Seçin ', satırların maksimuma sayısını bulun lMaxNameRow = Hücreler (65536, iMaxNameCol) .End (xlUp). sEmpName = Hücreler (lThisRow, iNameCol) sEmpName = Kesin (sEmpName) Eğer (sEmpName "") Sonra Sayfalar (sTimeSheetTempate). Sayfaları Seçin (sTimeSheetTempate). düzeltmeleri yapmanız gerekiyor 'Bu örnek satırında yeni kopyalanan şablonda, hücresinde A1 hücresinde' e Çalışan sayfasının Sütun A'sında bulundu (sEmpName) .Range ("A1") = Sayfalar (sMasterNameSheet) .Range ("A" & lThisRow) End nextFor için: Next End Sub
- 4. Çalıştırmak için F5'e basın
Not
Forumdaki bu ipucu için rizvisa1 'e teşekkür ederiz.