Sabah raporları & ana dosya oluşturma

Katılım
6 Ağustos 2008
Mesajlar
142
Excel Vers. ve Dili
2013 , Türkçe
Altın Üyelik Bitiş Tarihi
14/03/2023
Merhaba,

her sabah SAP den çektiğim 5 adet raporu kopyalayarak oluşturduğum bir ana excel tablom var.

Şu an her sabah ana dosyayı farklı gün ile kaydettikten sonra ilgili sekmelerdeki geçmiş rapor verilerini siliyorum, sonra SAP den excel formatında aldığım raporları güncel tarihe göre yeni isim vererek kaydettikten sonra tek tek kopyala yapıştır ile ana dosyadaki sekmelere yapıştırıyorum.

Daha önce farklı bir ana dosyayı oluştururken şöyle bir yol izliyordum ; excel şeklinde aldığım raporları açık tutup, ana dosya için silme ve SAP den aldığım dosyalardan verileri kopyalama şeklinde bir adım makro kaydetmiştim.

O yöntemde pratikti aslında ama ben daha pratik, farklı bir yöntem var mı kullandığınız diye sormak ve varsa öğrenmek istedim,

Teşekürler.
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,592
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Merhaba;
Her iki dosyayıda örnek olarak paylaşırsanız ona göre daha kolay yardımcı olunur. Foruma üye değilseniz buradan yüklediğiniz dosyaların link ini paylaşabilirsiniz.
 
Katılım
6 Ağustos 2008
Mesajlar
142
Excel Vers. ve Dili
2013 , Türkçe
Altın Üyelik Bitiş Tarihi
14/03/2023
Merhaba;
Her iki dosyayıda örnek olarak paylaşırsanız ona göre daha kolay yardımcı olunur. Foruma üye değilseniz buradan yüklediğiniz dosyaların link ini paylaşabilirsiniz.
ilginiz için teşekkür ederim, haklısınız dosyalar ile beraber desteğinizi talep etmem daha doğru olur fakat 5 ad. SAP raporu+ 1 ana dosyadaki fiyat, müşteri, v.s verilerini temizleyip yüklemem o kadar çok zaman alır ki.. Ayrıca o verileri temizledikten sonra dosyalar da anlaşılabilir olmaktan çıkar.
Bu sebepler ile dosyaları yükleyemeyeceğim ama desteğiniz için tekrar teşekkür ederim.

Direkt dosya üzerinde değil de yöntem izahı da olsa onu da öğrenmek isterim, o tarafa yönelip onu öğrenmeye çalışırım,

teşekkürler.
 
Katılım
24 Aralık 2010
Mesajlar
24
Excel Vers. ve Dili
Microsoft® Excel® LTSC MSO (16.0.14332.20541) 32 bit Standart 2021
Altın Üyelik Bitiş Tarihi
27-10-2023
Merhaba,

SAP den 5 raporu excele çekemediğini anladım mesajında, makro excelinde 5 rapor sayfası ,1 ana sayfa açıp ,Ana sayfa ya bu çekilen verileri getirtip en sonda exceli o günün tarihi ile kaydettirebilirsin, Excel+sap bağlantısı için aşağıdaki kod betiğini ben kullanıyorum sende bunu inceleyip bağlantılarını gerçekleştirebilirsin.

Kod:
Sub ZMORT_TL()
sidi = Worksheets("SSF").Cells(1, 10).Value
baglanti = Worksheets("SSF").Cells(2, 10).Value
Dim formula As String
  Dim kaynakSayfa As Worksheet
    Dim hedefSayfa As Worksheet
    Dim sonSatir As Long

kontrol = MsgBox("Oturum Açık mı, Şifre girdiniz mi" & vbCr & vbCr & "OTURUM AÇIK MI", vbInformation + vbYesNo, "OTURUM AÇIK MI")
If kontrol = vbNo Then

    Set WSHShell = CreateObject("WScript.Shell")
    If IsObject(WSHShell) Then
      Rem Set the path to the SAP GUI directory
        SAPGUIPath = "C:\Program Files (x86)\SAP\FrontEnd\SAPgui\"
      Rem Set the SAP system ID
        SID = sidi
      Rem Set the instance number of the SAP system
        InstanceNo = "00"
      Rem Starts the SAP GUI
        WSHShell.Exec SAPGUIPath & "SAPgui.exe " & SID & " " & _
          InstanceNo
      Rem Set the title of the SAP GUI window here
        WinTitle = baglanti
'      While Not WSHShell.AppActivate(WinTitle)
Application.Wait Now + TimeValue("0:00:03")
' sleep 250
'      Wend
      Set WSHShell = Nothing
    End If
End If

If Not IsObject(sapapplication) Then
On Error GoTo acik
   Set SapGuiAuto = GetObject("SAPGUI")
   Set sapapplication = SapGuiAuto.GetScriptingEngine
End If
On Error GoTo ders
If Not IsObject(Connection) Then
   Set Connection = sapapplication.Children(0)
End If
If Not IsObject(session) Then
   Set session = Connection.Children(0)
End If
If IsObject(WScript) Then
   WScript.ConnectObject session, "on"
   WScript.ConnectObject sapapplication, "on"
End If

'session.findById("wnd[0]").maximize ' TAM EKRAN YAPAR
session.findById("wnd[0]").iconify ' SİMGE DURUMUNA ALIR
kadi = Worksheets("SSF").Cells(1, 8).Value
ksifre = Worksheets("SSF").Cells(2, 8).Value

If kontrol = vbNo Then
On Error GoTo kul
session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = kadi
session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = ksifre
session.findById("wnd[0]/usr/pwdRSYST-BCODE").SetFocus
session.findById("wnd[0]/usr/pwdRSYST-BCODE").caretPosition = 6
session.findById("wnd[0]").sendVKey 0
Else
session.findById("wnd[0]/tbar[0]/btn[12]").press
session.findById("wnd[0]/tbar[0]/btn[12]").press
session.findById("wnd[0]/tbar[0]/btn[12]").press
On Error GoTo 0
End If
On Error GoTo 0

'

'SAP VB KODLAR


''
'

session.findById("wnd[0]/tbar[0]/btn[12]").press
session.findById("wnd[0]/tbar[0]/btn[12]").press
session.findById("wnd[0]/tbar[0]/btn[12]").press

'OTURUMU KAPATIP ÇIKIŞ YAPMAK İÇİN
If MsgBox("SAP oturumu kapatılsın mı", vbInformation + vbYesNo, "Oturum Kapatılsın mı ?") = vbYes Then
session.findById("wnd[0]/tbar[0]/btn[15]").press
session.findById("wnd[0]/tbar[0]/btn[15]").press
session.findById("wnd[1]/usr/btnSPOP-OPTION1").press ' ÇIKIŞ BUTONUNU ONAYLAMA
End If


MsgBox "ZMORT TL-İşlem Tamam" & vbCr & vbCr & "xxx" & vbCr & vbCr & "Selçuk xxxx" & vbCr, vbExclamation + vbMsgBoxRtlReading, "ZMORT TL"

Exit Sub
kul:
MsgBox "Oturumu KAPATIN Veya Soruya EVET demediniz.", vbCritical, "Oturumu KAPAT"
Exit Sub
ders:
MsgBox "GİRİŞ EKRANI ERB AÇIK DEĞİL", vbCritical, "ERB AÇIK DEĞİL"
Exit Sub
acik:
MsgBox "SAP  AÇIK DEĞİL", vbCritical, "SAP PROGRAMI KAPALI"
Exit Sub

End Sub
 
Üst