Excel - Çalışma sayfası otomatik jeneratörü

Excel, sayı çırpma ve veri gösterimi için kullanışlı bir araçtır. VBA ile birleştirildiğinde, sayısız senaryo için özelleştirilebilen oldukça dinamik bir uygulama haline gelir. Böyle bir örnek, bir giriş her bir ana listeden eklendiğinde veya silindiğinde oluşturulacak bir otomatik çalışma sayfası üreteci oluşturabilir. VBA kodu, otomatik oluşturucu ana sayfadaki adları arayacak ve çalışma kitabındaki tüm sayfalara geçecek şekilde çalışır. Önceden belirlenmiş bir kritere uyulduğunda, kullanıcının girişine bağlı olarak çalışma sayfaları ekleyebilir veya silebilir.

  • 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.

Önceki Makale Sonraki Makale

En Ipuçları