Makro İç İçe Eğer Hk.

Katılım
25 Haziran 2023
Mesajlar
100
Excel Vers. ve Dili
Microsoft Office 2019 / TR
Herkese iyi bayramlar arkadaslar

asagıda yazmıs oldugum IF makro koduna e ve f degıskenlerını ılave etmek ıstıyorum.
cari kod değişkeni e ve f degerıne esıt ıse sonucu "IHR" olarak gormesını ve asagıdaki IF blogunda birlestirme alanını bunun sonucunu baz alarak yapmasını ıstıyorum.
bırden fazla metot denedım ama hata aldım yardımcı olabılecek bırısı varmı


Sub Butce()

For i = 2 To Sheets("DATA").Range("AD2").End(xlDown).Row

Invoice_No = Cells(i, 5).Value

Department_Code = Cells(i, 29).Value

Description = Cells(i, 13).Value

Result_Left = Left(Ssp_Invoice_No, 3)

RESULT = Cells(i, 30).Value

Cari_Kod = Cells(i, 6).Value

a = "peynir"
b = "seker"
c = "lokum"
d = "pasta"
if_not = Result_Left & "-" & Department_Code




'e = 55987
'f = 56033


If Description = a Then
Cells(i, 30).Value = Result_Left & "-" & a

ElseIf Description = b Then
Cells(i, 30).Value = Result_Left & "-" & b

ElseIf Description = c Then
Cells(i, 30).Value = Result_Left & "-" & c

ElseIf Description = d Then
Cells(i, 30).Value = Result_Left & "-" & d

Else
Cells(i, 30).Value = if_not

End If

Next i

MsgBox ("Completed")

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya paylaşarak yapmak istediğiniz işlemi açıklarsanız daha net cevaplar alabilirsiniz.

Dosya yükleme sitelerini kullanarak dosya paylaşımı yapabilirsiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tam olarak ne yapmak istiyorsunuz?
 
Katılım
25 Haziran 2023
Mesajlar
100
Excel Vers. ve Dili
Microsoft Office 2019 / TR
hocam dosyanın ıcınde de belırttım ayrıca burda da belırteyım
'e = 55987 ve 'f = 56033 degerleri asagıdaki alana esıt olur ıse bırlestırme alanında calısan mevcut kodda fatura numarası exp dahi olsa IHR olarak getırmesının saglanması

Cari_Kod = Cells(i, 6).Value
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kendi yazdığınız kodu unutun...

Hangi sütundaki değer ne ise hangi sütunda ne olacak sorusunu cevaplarsanız daha sağlıklı yorum yapabilirim.
 
Katılım
25 Haziran 2023
Mesajlar
100
Excel Vers. ve Dili
Microsoft Office 2019 / TR
m sutunundaki degerler a,b,c,d degerlerine eşit ise E sutunundaki değerlerin soldan 3 hanesi - ile bırlestır diyerek result alanına yazması degılse AC sutunu ıle bırlestırmesı ve bu degerı yazması bunda sorun yok sorunsuz olarak calısmakta sadece buna ılave olarak F sutununda e ve f degerlerını gormesı halınde fatura numarasına bakmaksızın result alanına attıgı bırlestırme kodunda bunu IHR olarak bırlestırek atması ıstedıgım bu
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit

Sub Concatenate_Data()
    Dim WS As Worksheet, My_Data As Variant
    Dim Searched_Data As Variant, X As Long
    Dim No As Long, X_Match As Integer
    
    Set WS = Sheets("DATA")
    
    Searched_Data = Array("PEYNIR", "SEKER", "LOKUM", "PASTA")
    
    My_Data = WS.Range("A2:AC" & WS.Cells(WS.Rows.Count, 1).End(3).Row).Value
    
    ReDim My_List(1 To UBound(My_Data, 1), 1 To 1)
    
    WS.Range("AD2:AD" & WS.Rows.Count).ClearContents
    
    For X = LBound(My_Data, 1) To UBound(My_Data, 1)
        On Error Resume Next
        X_Match = 0
        X_Match = Application.Match(My_Data(X, 13), Searched_Data, 0)
        On Error GoTo 0
        If X_Match > 0 Then
            No = No + 1
            If My_Data(X, 6) = 56033 Or My_Data(X, 6) = 55987 Then
                My_List(No, 1) = "IHR-" & Searched_Data(X_Match - 1)
            Else
                My_List(No, 1) = Left(My_Data(X, 5), 3) & "-" & Searched_Data(X_Match - 1)
            End If
        Else
            No = No + 1
            My_List(No, 1) = Left(My_Data(X, 5), 3) & "-" & My_Data(X, 29)
        End If
    Next
    
    WS.Range("AD2").Resize(No) = My_List
    
    Set WS = Nothing
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Üst