Soru excelde girdiğimiz verilere işlem yaptırıp kaydetmek

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
1,078
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Arkadaş 25 sayfa pdf açıklaması nedir siz bence bölüm bölüm gidin tariften daha çok dosyanızda manuel olarak yapmak istediklerinizi örnek bilgiler girerek bölümler halinde gösterinki ilerleme kaydedilebilsin.Ben şu bilgileri girdm yansıması şu şekilde olacak diye resim paylaşabilirsiniz
 
Katılım
6 Mayıs 2021
Mesajlar
33
Excel Vers. ve Dili
2019 ingilizce
merhaba aslında kısaca verilere bir takım işlem yapılıp kaydedilecekte uzun anlatmasaydım anlaşılmayacaktı o yüzden bu kadar uzun oldu, detaylıanlattım soru işareti kalmasın diye yanlış mı ettim acaba @muhasebeciyiz
 
Katılım
6 Mayıs 2021
Mesajlar
33
Excel Vers. ve Dili
2019 ingilizce
Arkadaş 25 sayfa pdf açıklaması nedir siz bence bölüm bölüm gidin tariften daha çok dosyanızda manuel olarak yapmak istediklerinizi örnek bilgiler girerek bölümler halinde gösterinki ilerleme kaydedilebilsin.Ben şu bilgileri girdm yansıması şu şekilde olacak diye resim paylaşabilirsiniz
yardımcı olma şansınız var mı
 
Katılım
6 Mart 2024
Mesajlar
330
Excel Vers. ve Dili
2010 TR & 2016 TR
Sorunuzu tam olarak anlayamadım, ikinci sayfada biraz sıkıldım, yani ben anlamadım.

@muhasebeciyiz arkadaşın dediği gibi
Arkadaş 25 sayfa pdf açıklaması nedir
Açıklamanızı okuyamayınca, ben de AI’ye okuttum ve özet çıkarmasını istedim.
Özet çıktıktan sonra, “makro ile çözüm üreteyim mi?” diye sorunca üret dedim.
Tabii ki kaba taslak bir şeyler yaptı, ama kodları düzenleyip geliştirdim.

Not:
  • ELEMAN, AÇIKLAMA, POZ verilerini anladım, bunlar doğru.
  • BOY, ADET ve Etriye hesaplarını hiç okumadığım için, AI’nin yaptığı formülü doğru kabul ettim.
  • Yani özellikle BOY, ADET ve Etriye değerlerinin kontrol edilmesi gerekiyor.

C++:
Sub DemirMetrajAktar()
    Dim wsHam As Worksheet, wsMetraj As Worksheet
    Dim veriSatiri As Range, veri As String
    Dim pozNo As String, tip As String, bantTipi As String, anaBoy As Double
    Dim ustBoy As Double, altBoy As Double, etriyeBoy As Double, etriyeAra As Double
    Dim solKancaUst As Double, sagKancaUst As Double, solKancaAlt As Double, sagKancaAlt As Double
    Dim bindirmeBoy As Double, etriyeAdet As Integer
    Dim wsBant As Worksheet, EskiSatir As Long, satirMetraj As Long, hamVeriMiktar As Long

    Set wsHam = Sheets("HAM_VERİ")
    Set wsMetraj = Sheets("DONATI_METRAJ")
   
    EskiSatir = wsMetraj.Cells(wsMetraj.Rows.Count, "A").End(xlUp).Row - 4
    hamVeriMiktar = wsHam.Cells(wsHam.Rows.Count, "A").End(xlUp).Row - 1
   
    ' Turbo modu ON : ekran güncelleme ve otomatik hesaplamayı kapatıyoruz
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
   
   
    ' Eski satırlar veriler varsa sil
    If EskiSatir >= 9 Then
        wsMetraj.Range("A10:A" & EskiSatir).EntireRow.Delete
        wsMetraj.Rows("9:9").ClearContents
        wsMetraj.Range("A8:M8").ClearContents
        wsMetraj.Activate
        wsMetraj.Rows(9 & ":" & 9 + hamVeriMiktar * 3).Insert Shift:=xlDown ' (hamVeriMiktar * 3) adet satır ekle
        wsMetraj.Range("A8:A" & (hamVeriMiktar * 3) + 7).FormulaR1C1 = "=ROW()-7" ' Satır numaraları ver
        wsMetraj.Range("A8").Select
    End If
   
    satirMetraj = 8

    For Each veriSatiri In wsHam.Range("A2:A" & wsHam.Cells(wsHam.Rows.Count, "A").End(xlUp).Row)
        veri = veriSatiri.Value
        If veri = "" Then GoTo NextVeri
       
        ' Veriyi parçala
        pozNo = Split(veri, "_")(0)
       
        tip = Split(veri, "_")(1)
       
        bantTipi = Split(veri, "_")(2)
        bantTipi = Replace(bantTipi, " ", "")
        bantTipi = Replace(bantTipi, "/", "-")
       
        anaBoy = CDbl(Split(veri, "_")(3))
       

        ' İlgili bant sayfasını bul
        On Error Resume Next
            Set wsBant = Sheets(bantTipi)
        On Error GoTo 0
     
        If wsBant Is Nothing Then
            MsgBox "Sayfa bulunamadı: " & bantTipi, vbExclamation
            GoTo NextVeri
        End If

       

        ' Ortak veriler
        etriyeAra = wsBant.Cells.Find("ARA (cm)").Offset(1, 0).Value
        etriyeBoy = wsBant.Cells.Find("UZUNLUK (m)").Offset(1, 0).Value

        If tip = "SİZ" Then
       
            solKancaUst = wsBant.Cells.Find("SOL KANCA ÜST").Offset(0, 1).Value
            sagKancaUst = wsBant.Cells.Find("SAĞ KANCA ÜST").Offset(0, 1).Value
            solKancaAlt = wsBant.Cells.Find("SOL KANCA ALT").Offset(0, 1).Value
            sagKancaAlt = wsBant.Cells.Find("SAĞ KANCA ALT").Offset(0, 1).Value

            ustBoy = (anaBoy + solKancaUst + sagKancaUst) / 100
            altBoy = (anaBoy + solKancaAlt + sagKancaAlt) / 100

        ElseIf tip = "Lİ" Then
            bindirmeBoy = wsBant.Cells.Find("BİNDİRME").Offset(0, 1).Value
            sagKancaUst = wsBant.Cells.Find("SAĞ KANCA ÜST").Offset(0, 1).Value
            sagKancaAlt = wsBant.Cells.Find("SAĞ KANCA ALT").Offset(0, 1).Value

            ustBoy = (anaBoy + sagKancaUst + bindirmeBoy) / 100
            altBoy = (anaBoy + sagKancaAlt + bindirmeBoy) / 100
        End If

        etriyeAdet = WorksheetFunction.RoundUp(anaBoy / etriyeAra, 0)

        ' DONATI_METRAJ'a yaz
        wsMetraj.Cells(satirMetraj, 1).FormulaR1C1 = "=ROW()-7" ' A Sütunu "SIRA NO"
        wsMetraj.Cells(satirMetraj, 7).Value = bantTipi         ' G Sütunu "ELEMAN"
        wsMetraj.Cells(satirMetraj, 8).Value = "ÜST"            ' H Sütunu "AÇIKLAMA"
        wsMetraj.Cells(satirMetraj, 9).Value = pozNo            ' I Sütunu "POZ"
        wsMetraj.Cells(satirMetraj, 13).Value = ustBoy          ' M Sütunu "BOY"
        satirMetraj = satirMetraj + 1
        Application.StatusBar = "İşleniyor: " & (hamVeriMiktar * 3) & " / " & (satirMetraj - 8)
               
        wsMetraj.Cells(satirMetraj, 1).FormulaR1C1 = "=ROW()-7" ' A Sütunu "SIRA NO"
        wsMetraj.Cells(satirMetraj, 7).Value = bantTipi         ' G Sütunu "ELEMAN"
        wsMetraj.Cells(satirMetraj, 8).Value = "ALT"            ' H Sütunu "AÇIKLAMA"
        wsMetraj.Cells(satirMetraj, 9).Value = pozNo            ' I Sütunu "POZ"
        wsMetraj.Cells(satirMetraj, 13).Value = altBoy          ' M Sütunu "BOY"
        satirMetraj = satirMetraj + 1
        Application.StatusBar = "İşleniyor: " & (hamVeriMiktar * 3) & " / " & (satirMetraj - 8)
       
        wsMetraj.Cells(satirMetraj, 1).FormulaR1C1 = "=ROW()-7" ' A Sütunu "SIRA NO"
        wsMetraj.Cells(satirMetraj, 7).Value = bantTipi         ' G Sütunu "ELEMAN"
        wsMetraj.Cells(satirMetraj, 8).Value = "ETRİYE"         ' H Sütunu "AÇIKLAMA"
        wsMetraj.Cells(satirMetraj, 9).Value = pozNo            ' I Sütunu "POZ"
        wsMetraj.Cells(satirMetraj, 12).Value = etriyeAdet      ' L Sütunu "ADET"
        wsMetraj.Cells(satirMetraj, 13).Value = etriyeBoy       ' M Sütunu "BOY"
        satirMetraj = satirMetraj + 1
        Application.StatusBar = "İşleniyor: " & (hamVeriMiktar * 3) & " / " & (satirMetraj - 8)

NextVeri:
        Set wsBant = Nothing
    Next veriSatiri
   
    ' N8:AF8 aralığını komple kopyala (formüller, biçimler, renkler, kenarlıklar dahil)
    wsMetraj.Range("N8:AF8").Copy Destination:=wsMetraj.Range("N9:AF" & satirMetraj - 1)
   
    ' Fazla satırları sil
    wsMetraj.Rows(satirMetraj & ":" & satirMetraj + 2).Delete
   
    ' A8 hücresini seçili göstermek istersen
    wsMetraj.Range("A8").Select
   
    ' Turbo modu OFF : ekran güncelleme ve otomatik hesaplamayı açıyoruz
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Application.EnableEvents = True

    MsgBox "DEMİR metrajı aktarıldı!", vbInformation
    Application.StatusBar = False
End Sub
 
Son düzenleme:

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
1,078
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027

BANT(45-16)

ÜST

1

14

1

5

4,9

0​

0​

0​

24,5​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

29,596​

0​

29,596​

0​

BANT(45-16)

ALT

1

14

1

5

4,7

0​

0​

0​

23,5​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

28,388​

0​

28,388​

0​

BANT(45-16)

ETRİYE

1

8

1

23

1,34

30,82​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

12,1739​

12,1739​

0​

0​

                         

BANT(45-16)

ÜST

2

14

1

5

3,30

0​

0​

0​

16,5​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

19,932​

0​

19,932​

0​

BANT(45-16)

ALT

2

14

1

5

3,10

0​

0​

0​

15,5​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

18,724​

0​

18,724​

0​

BANT(45-16)

ETRİYE

2

8

1

15

1,34

20,1​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

0​

7,9395​

7,9395​

0​

0​



Sayın
Biolightant buna benzer birşey isteniyor herhalde
 
Üst