Excell makro nasıl yapılır?

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Uzman Üye
Katılım
6 Şub 2021
Mesajlar
159
Çözümler
4
Tepki puanı
26
Ödüller
3
Yaş
27
5 HİZMET YILI
Arkadaşlar selam, Excel ile veri giriş makrosu oluşturmak istiyorum veya normal formül ile yapabiliyorsak o da olur.

İstediğim makro şu yönde: Shet1 sayfasında ad, soyadı, T.C., dönem ayı ve kullanılan gün var. Buraya girdiğim bilgilerin hazırda bulunan shet2 sayfasındaki personellerin olduğu kısma gelmesini istiyorum. Örneğin shet1 kısmına.
Ad: Bluperisback.
T.C.: 11111111111.
Dönem ayı: Eylül.
Kullanılan gün: 12.

Girip ekle butonuna bastığım zaman, hazırda bulunan shet2 sayfasında düşeyara mantığı ile bluperisbacki aratıp bluperisbackte denk gelen Eylül ayı sutununa 12 sayısını ekleyecek.

Makro kodu için aklıma gelmedi, normal formül ile de düşeyara ekle yapamadım. Normal manuel makro kaydında da izleyeceğim sırayı oturtamadım. Desteklerinizi bekliyorum.
 
Moderatörün son düzenlenenleri:
Süper Üye
Katılım
18 Kas 2017
Mesajlar
644
Çözümler
2
Tepki puanı
47
Ödüller
9
8 HİZMET YILI
ChatGPT Says:
İstediğin işlevi gerçekleştiren bir VBA makro hazırlayabiliriz. Bu makro, Sheet1'deki verileri alacak, Sheet2'deki kişiyi arayacak ve ilgili ay sütununa kullanılan gün bilgisini ekleyecek. Aşağıda örnek bir kod paylaşıyorum.

Adımlar:​

  1. Excel'de Alt + F11 tuşlarına basarak VBA editörünü aç.
  2. Sol tarafta uygun workbook'u seçip Insert > Module tıklayarak yeni bir modül ekle.
  3. Aşağıdaki kodu ekleyip kaydet.

VBA Makro Kodu:​

Kod:
Sub VeriGirisi()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim ad As String, tc As String, ay As String, gun As Integer
    Dim lastRow As Long, foundRow As Long
    Dim aySutun As Integer
    
    ' Sayfaları belirle
    Set ws1 = ThisWorkbook.Sheets("Sheet1")
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    
    ' Sheet1'deki bilgileri al
    ad = ws1.Range("A2").Value ' Ad-Soyad hücresi (A2 hücresinde olduğu varsayılıyor)
    tc = ws1.Range("B2").Value ' TC hücresi (B2 hücresinde olduğu varsayılıyor)
    ay = ws1.Range("C2").Value ' Dönem Ayı hücresi (C2 hücresinde olduğu varsayılıyor)
    gun = ws1.Range("D2").Value ' Kullanılan Gün hücresi (D2 hücresinde olduğu varsayılıyor)
    
    ' Sheet2'deki son satırı bul
    lastRow = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
    
    ' Ad-Soyad'a göre ilgili satırı bul
    On Error Resume Next
    foundRow = ws2.Range("A2:A" & lastRow).Find(What:=ad, LookIn:=xlValues, LookAt:=xlWhole).Row
    On Error GoTo 0
    
    If foundRow = 0 Then
        MsgBox "Kişi bulunamadı!", vbExclamation
        Exit Sub
    End If
    
    ' Dönem ayına göre ilgili sütunu bul
    Select Case ay
        Case "ocak"
            aySutun = 3 ' Ocak ayı C sütununda (örneğin)
        Case "şubat"
            aySutun = 4 ' Şubat ayı D sütununda (örneğin)
        Case "mart"
            aySutun = 5 ' Mart ayı E sütununda (örneğin)
        Case "nisan"
            aySutun = 6 ' Nisan ayı F sütununda (örneğin)
        Case "mayıs"
            aySutun = 7 ' Mayıs ayı G sütununda (örneğin)
        Case "haziran"
            aySutun = 8 ' Haziran ayı H sütununda (örneğin)
        Case "temmuz"
            aySutun = 9 ' Temmuz ayı I sütununda (örneğin)
        Case "ağustos"
            aySutun = 10 ' Ağustos ayı J sütununda (örneğin)
        Case "eylül"
            aySutun = 11 ' Eylül ayı K sütununda (örneğin)
        Case "ekim"
            aySutun = 12 ' Ekim ayı L sütununda (örneğin)
        Case "kasım"
            aySutun = 13 ' Kasım ayı M sütununda (örneğin)
        Case "aralık"
            aySutun = 14 ' Aralık ayı N sütununda (örneğin)
        Case Else
            MsgBox "Geçersiz dönem ayı!", vbExclamation
            Exit Sub
    End Select
    
    ' Bulunan satır ve sütuna kullanılan gün bilgisini ekle
    ws2.Cells(foundRow, aySutun).Value = gun
    
    MsgBox "Veri başarıyla eklendi!", vbInformation
End Sub

Kısaca Açıklama:​

  • Sheet1'deki A2, B2, C2 ve D2 hücrelerinden Ad-Soyad, TC, Dönem Ayı ve Kullanılan Gün bilgilerini alıyoruz.
  • Sheet2 sayfasında, Ad-Soyad'a göre kişiyi buluyoruz.
  • Ardından, ay'a göre doğru sütunu bulup, kullanılan gün bilgisini ekliyoruz.

Manuel olarak nasıl formüllerle yapabilirim?​

Eğer VBA kullanmadan formüllerle yapmak istersen, temel olarak DÜŞEYARA fonksiyonunu ve uygun hücreleri elle doldurmayı kullanabilirsin. Ancak, hücreye veri eklemek için bir buton kullanmak istediğinde VBA gerekli olacaktır.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst