Hoş Geldin, Mühendis!

Tüm mühendislerin ve mühendis adaylarının yer aldığı forum sayfamıza kayıt olmalısınız. Kayıt olduktan sonra tüm ders notlarına, teknik dokümanlara erişim sağlayabilecek, sorularınızı sorup cevaplar verebileceksiniz. Sitemiz tamamiyle ücretsiz olmakla birlikte Mühendis Puanı sistemi uygulamaktadır.

Bilgi paylaştıkça çoğalır.

Premium Abonelik 📢

Premium abonelik ile sitemizi reklamsız gezebilir, dosyaları sınırsızca indirebilirsiniz.

Daha Fazlası

[Muhendisiz.NET] Tekrar Sizlerleyiz! 🎭

Mühendisiz.NET sitesi forum ve blog sayfası olarak tekrar yayın hayatına başladı. 🤩 Sizlerde forum sayfamıza üye olabilir ve mühendis topluluğumuza katılabilirsiniz.

Daha Fazlası

Mühendis Puanı Sistemi🏆

Bilgi paylaştıkça çoğalır felsefesini benimsemiş olmamız nedeniyle Mühendis Puanı sistemini uygulamaya aldık. Dökümanları indirebilmek için bazı paylaşımlarda bulunmalısınız. 📨

Daha Fazlası
  • Dosya indirebilmek için 2 Mühendis Puanına ihtiyacınız var. Konuya yorum atarak 1 MP Not paylaşarak 6 MP kazanırsınız.
    Bilgi Paylaştıkça Çoğalır. (Mühendislik Puanı (MP) Nedir?)
  • Mühendis Puanı kazanmaya vakti olmayanlar için ücretli premium üyelik sistemi aktif edilmiştir.
    (Premium Üyelik SATIN AL)

Makro programlama kullanım alanları

zeynop

Mühendis
Katılım
4 Ara 2024
Mesajlar
2
Mühendis Puanı
6
BÖLÜM
Endüstri Müh
merhaba
makro programlama kullanarak rutin işleri daha basit şekilde yapabilmeyi sağlayacak bir proje oluşturmamız gerekiyor. bu proje için rutin işlerin önerisi veya sektördeki kullanım alanlarından bahseder misiniz ? excelde visual basic kullanarak yazıyoruz.
henüz öğrenci olduğumuzdan sizin için basit şeyler de bizim için kıymetli olacaktır.
 
Son düzenleme:

Mühendis

Yönetici
Moderatör
Katılım
24 Nis 2020
Mesajlar
584
Mühendis Puanı
5,868
BÖLÜM
Makine Müh
Excel'de Visual Basic for Applications (VBA) kullanarak, rutin işleri otomatikleştiren projeler oluşturmak gerçekten etkili ve sektörde çok kullanılan bir yöntemdir. Öğrenci olarak bu tür projelere giriş yapmak, hem Excel'i hem de temel programlama becerilerini geliştirmek için harika bir fırsattır. İşte bazı proje önerileri ve sektördeki kullanım alanları:

Proje Önerileri

  1. Fatura Otomasyonu
    • Girdi: Müşteri bilgileri, ürün veya hizmet listesi, fiyatlar.
    • Çıktı: Otomatik olarak oluşturulan fatura.
    • Özellikler: Belirli bir şablona göre fatura hazırlayıp PDF olarak kaydetme, müşteri bilgilerini veri tabanından çekme.
  2. Veri Temizleme ve Düzenleme
    • Girdi: Karışık ve eksik veriler içeren bir dosya.
    • İşlem: Boş hücrelerin doldurulması, yanlış formatta olan verilerin düzeltilmesi, gereksiz verilerin silinmesi.
    • Çıktı: Düzenlenmiş ve analiz için uygun hale getirilmiş veri.
  3. Raporlama ve Grafik Oluşturma
    • Girdi: Satış, üretim, performans gibi bir veri seti.
    • Çıktı: Belirli bir formata göre özet rapor oluşturma ve grafik ekleme.
    • Özellikler: Raporu her gün/hafta/ay otomatik oluşturup kaydetme.
  4. Envanter Takip Sistemi
    • Girdi: Stok hareketleri (giriş-çıkış).
    • Çıktı: Mevcut stok durumu, azalan ürünlerin listesi.
    • Özellikler: Eşik değerleri belirleyerek uyarı mesajları göstermek.
  5. Görev ve İş Planlama
    • Girdi: Çalışanlar, görevler ve tarihler.
    • Çıktı: Otomatik görev dağılımı, zaman çizelgesi oluşturma.
    • Özellikler: Belirli görevleri hatırlatmak için açılır kutular veya mesajlar.

Sektördeki Kullanım Alanları

  1. Muhasebe ve Finans
    • Gelir-gider tabloları oluşturma, bütçe takibi, finansal analiz raporları hazırlama.
  2. İnsan Kaynakları
    • Çalışan bilgileri takibi, maaş hesaplama, yıllık izin planlaması.
  3. Satış ve Pazarlama
    • Satış raporları, müşteri geri dönüş takibi, teklif şablonları hazırlama.
  4. Lojistik ve Tedarik Zinciri
    • Sevkiyat planlama, stok yönetimi, sipariş takip sistemi.
  5. Eğitim
    • Sınıf yoklama tabloları, sınav notu hesaplama, öğrenci performans raporları.

Başlangıç İçin Tavsiyeler

  • Basitten Başlayın: İlk projelerinizde veri temizleme veya raporlama gibi temel işlemlerle başlayabilirsiniz.
  • Araştırma Yapın: Online örnekler, eğitim videoları ve kaynaklardan faydalanın.
  • Kodları Açıklayın: Yorum satırları kullanarak kodlarınızı açıklayın, ileride geliştirmek daha kolay olur.
 

Mühendis

Yönetici
Moderatör
Katılım
24 Nis 2020
Mesajlar
584
Mühendis Puanı
5,868
BÖLÜM
Makine Müh
Bir "Görev ve İş Planlama" projesi için temel bir tasarım ve VBA kod örneği aşağıda verilmiştir. Bu proje, çalışanlara görev atamak, görevlerin tamamlanma durumlarını izlemek ve bir zaman çizelgesi oluşturmak için kullanılabilir.


Tasarım

Çalışma Sayfası Yapısı:​

  1. "Görevler" Tablosu (Sayfa adı: Tasks)
    • A1: Görev ID
    • B1: Çalışan Adı
    • C1: Görev Adı
    • D1: Başlama Tarihi
    • E1: Bitiş Tarihi
    • F1: Durum (Tamamlandı / Bekliyor)
  2. "Özet" Bölümü (Sayfa adı: Summary)
    • Çalışan başına görev dağılımı ve tamamlanan görev yüzdesini gösterir.

VBA Kodları

Görev Ekleme​

Yeni bir görev eklemek için bir kullanıcı formu oluşturabilirsiniz. Ancak basit bir başlangıç için bir makro kullanılabilir.

Kod:
Sub AddTask()
    Dim ws As Worksheet
    Dim lastRow As Long
    
    Set ws = ThisWorkbook.Sheets("Tasks")
    
    ' Son satırı bul
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
    
    ' Kullanıcıdan veri al
    Dim taskID As String, employee As String, taskName As String
    Dim startDate As Date, endDate As Date
    
    taskID = InputBox("Görev ID'yi girin:")
    employee = InputBox("Çalışan Adını girin:")
    taskName = InputBox("Görev Adını girin:")
    startDate = InputBox("Başlama Tarihini girin (GG/AA/YYYY):")
    endDate = InputBox("Bitiş Tarihini girin (GG/AA/YYYY):")
    
    ' Veriyi ekle
    ws.Cells(lastRow, 1).Value = taskID
    ws.Cells(lastRow, 2).Value = employee
    ws.Cells(lastRow, 3).Value = taskName
    ws.Cells(lastRow, 4).Value = startDate
    ws.Cells(lastRow, 5).Value = endDate
    ws.Cells(lastRow, 6).Value = "Bekliyor"
    
    MsgBox "Görev başarıyla eklendi!", vbInformation
End Sub




Görev Tamamlama​

Görevlerin tamamlanma durumunu güncelleyen bir makro:

Kod:
Sub CompleteTask()
    Dim ws As Worksheet
    Dim taskID As String
    Dim foundCell As Range
    
    Set ws = ThisWorkbook.Sheets("Tasks")
    
    ' Görev ID'si sor
    taskID = InputBox("Tamamlanan Görev ID'yi girin:")
    
    ' Görevi bul
    Set foundCell = ws.Columns("A").Find(taskID, LookIn:=xlValues, LookAt:=xlWhole)
    
    If Not foundCell Is Nothing Then
        foundCell.Offset(0, 5).Value = "Tamamlandı"
        MsgBox "Görev başarıyla tamamlandı!", vbInformation
    Else
        MsgBox "Görev ID bulunamadı.", vbExclamation
    End If
End Sub


Görev Özetini Oluşturma​

Çalışan başına tamamlanan görev yüzdesini gösteren bir özet raporu:

Kod:
Sub GenerateSummary()
    Dim wsTasks As Worksheet, wsSummary As Worksheet
    Dim lastRow As Long, i As Long
    Dim employeeDict As Object
    Dim employee As String
    Dim completed As Long, total As Long
    
    Set wsTasks = ThisWorkbook.Sheets("Tasks")
    Set wsSummary = ThisWorkbook.Sheets("Summary")
    Set employeeDict = CreateObject("Scripting.Dictionary")
    
    ' Görev tablosundaki tüm çalışanları ve durumları al
    lastRow = wsTasks.Cells(wsTasks.Rows.Count, "A").End(xlUp).Row
    For i = 2 To lastRow
        employee = wsTasks.Cells(i, 2).Value
        If Not employeeDict.exists(employee) Then
            employeeDict.Add employee, Array(0, 0) ' [Tamamlanan, Toplam]
        End If
        total = employeeDict(employee)(1) + 1
        completed = employeeDict(employee)(0)
        If wsTasks.Cells(i, 6).Value = "Tamamlandı" Then completed = completed + 1
        employeeDict(employee) = Array(completed, total)
    Next i
    
    ' Özet sayfasını temizle
    wsSummary.Cells.Clear
    wsSummary.Cells(1, 1).Value = "Çalışan"
    wsSummary.Cells(1, 2).Value = "Tamamlanan Görevler"
    wsSummary.Cells(1, 3).Value = "Toplam Görevler"
    wsSummary.Cells(1, 4).Value = "Tamamlama Yüzdesi"
    
    ' Verileri özet sayfasına yaz
    Dim rowIndex As Long
    rowIndex = 2
    For Each employee In employeeDict.Keys
        wsSummary.Cells(rowIndex, 1).Value = employee
        wsSummary.Cells(rowIndex, 2).Value = employeeDict(employee)(0)
        wsSummary.Cells(rowIndex, 3).Value = employeeDict(employee)(1)
        wsSummary.Cells(rowIndex, 4).Value = Format((employeeDict(employee)(0) / employeeDict(employee)(1)) * 100, "0.00") & "%"
        rowIndex = rowIndex + 1
    Next employee
    
    MsgBox "Görev özeti başarıyla oluşturuldu!", vbInformation
End Sub


Proje Kullanımı

  1. Görev eklemek için AddTask makrosunu çalıştırın.
  2. Görev tamamlandığında CompleteTask makrosunu çalıştırarak durumunu güncelleyin.
  3. Özet rapor oluşturmak için GenerateSummary makrosunu çalıştırın.
Bu proje, hem işlevsel hem de geliştirmeye açık bir temel sağlar. Ek özellikler ekleyerek daha karmaşık hale getirebilirsiniz!
 

zeynop

Mühendis
Katılım
4 Ara 2024
Mesajlar
2
Mühendis Puanı
6
BÖLÜM
Endüstri Müh
Bir "Görev ve İş Planlama" projesi için temel bir tasarım ve VBA kod örneği aşağıda verilmiştir. Bu proje, çalışanlara görev atamak, görevlerin tamamlanma durumlarını izlemek ve bir zaman çizelgesi oluşturmak için kullanılabilir.


Tasarım

Çalışma Sayfası Yapısı:​

  1. "Görevler" Tablosu (Sayfa adı: Tasks)
    • A1: Görev ID
    • B1: Çalışan Adı
    • C1: Görev Adı
    • D1: Başlama Tarihi
    • E1: Bitiş Tarihi
    • F1: Durum (Tamamlandı / Bekliyor)
  2. "Özet" Bölümü (Sayfa adı: Summary)
    • Çalışan başına görev dağılımı ve tamamlanan görev yüzdesini gösterir.

VBA Kodları

Görev Ekleme​

Yeni bir görev eklemek için bir kullanıcı formu oluşturabilirsiniz. Ancak basit bir başlangıç için bir makro kullanılabilir.

Kod:
Sub AddTask()
    Dim ws As Worksheet
    Dim lastRow As Long
   
    Set ws = ThisWorkbook.Sheets("Tasks")
   
    ' Son satırı bul
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
   
    ' Kullanıcıdan veri al
    Dim taskID As String, employee As String, taskName As String
    Dim startDate As Date, endDate As Date
   
    taskID = InputBox("Görev ID'yi girin:")
    employee = InputBox("Çalışan Adını girin:")
    taskName = InputBox("Görev Adını girin:")
    startDate = InputBox("Başlama Tarihini girin (GG/AA/YYYY):")
    endDate = InputBox("Bitiş Tarihini girin (GG/AA/YYYY):")
   
    ' Veriyi ekle
    ws.Cells(lastRow, 1).Value = taskID
    ws.Cells(lastRow, 2).Value = employee
    ws.Cells(lastRow, 3).Value = taskName
    ws.Cells(lastRow, 4).Value = startDate
    ws.Cells(lastRow, 5).Value = endDate
    ws.Cells(lastRow, 6).Value = "Bekliyor"
   
    MsgBox "Görev başarıyla eklendi!", vbInformation
End Sub




Görev Tamamlama​

Görevlerin tamamlanma durumunu güncelleyen bir makro:

Kod:
Sub CompleteTask()
    Dim ws As Worksheet
    Dim taskID As String
    Dim foundCell As Range
   
    Set ws = ThisWorkbook.Sheets("Tasks")
   
    ' Görev ID'si sor
    taskID = InputBox("Tamamlanan Görev ID'yi girin:")
   
    ' Görevi bul
    Set foundCell = ws.Columns("A").Find(taskID, LookIn:=xlValues, LookAt:=xlWhole)
   
    If Not foundCell Is Nothing Then
        foundCell.Offset(0, 5).Value = "Tamamlandı"
        MsgBox "Görev başarıyla tamamlandı!", vbInformation
    Else
        MsgBox "Görev ID bulunamadı.", vbExclamation
    End If
End Sub


Görev Özetini Oluşturma​

Çalışan başına tamamlanan görev yüzdesini gösteren bir özet raporu:

Kod:
Sub GenerateSummary()
    Dim wsTasks As Worksheet, wsSummary As Worksheet
    Dim lastRow As Long, i As Long
    Dim employeeDict As Object
    Dim employee As String
    Dim completed As Long, total As Long
   
    Set wsTasks = ThisWorkbook.Sheets("Tasks")
    Set wsSummary = ThisWorkbook.Sheets("Summary")
    Set employeeDict = CreateObject("Scripting.Dictionary")
   
    ' Görev tablosundaki tüm çalışanları ve durumları al
    lastRow = wsTasks.Cells(wsTasks.Rows.Count, "A").End(xlUp).Row
    For i = 2 To lastRow
        employee = wsTasks.Cells(i, 2).Value
        If Not employeeDict.exists(employee) Then
            employeeDict.Add employee, Array(0, 0) ' [Tamamlanan, Toplam]
        End If
        total = employeeDict(employee)(1) + 1
        completed = employeeDict(employee)(0)
        If wsTasks.Cells(i, 6).Value = "Tamamlandı" Then completed = completed + 1
        employeeDict(employee) = Array(completed, total)
    Next i
   
    ' Özet sayfasını temizle
    wsSummary.Cells.Clear
    wsSummary.Cells(1, 1).Value = "Çalışan"
    wsSummary.Cells(1, 2).Value = "Tamamlanan Görevler"
    wsSummary.Cells(1, 3).Value = "Toplam Görevler"
    wsSummary.Cells(1, 4).Value = "Tamamlama Yüzdesi"
   
    ' Verileri özet sayfasına yaz
    Dim rowIndex As Long
    rowIndex = 2
    For Each employee In employeeDict.Keys
        wsSummary.Cells(rowIndex, 1).Value = employee
        wsSummary.Cells(rowIndex, 2).Value = employeeDict(employee)(0)
        wsSummary.Cells(rowIndex, 3).Value = employeeDict(employee)(1)
        wsSummary.Cells(rowIndex, 4).Value = Format((employeeDict(employee)(0) / employeeDict(employee)(1)) * 100, "0.00") & "%"
        rowIndex = rowIndex + 1
    Next employee
   
    MsgBox "Görev özeti başarıyla oluşturuldu!", vbInformation
End Sub


Proje Kullanımı

  1. Görev eklemek için AddTask makrosunu çalıştırın.
  2. Görev tamamlandığında CompleteTask makrosunu çalıştırarak durumunu güncelleyin.
  3. Özet rapor oluşturmak için GenerateSummary makrosunu çalıştırın.
Bu proje, hem işlevsel hem de geliştirmeye açık bir temel sağlar. Ek özellikler ekleyerek daha karmaşık hale getirebilirsiniz!
çok teşekkür ederim.
 

Son kaynaklar