[Yardım]  Excel Macro hata veriyor

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Excel Macro hata veriyor

İleti#1)  enderem » 22 May 2019 12:07

Merhaba,

excelde bir macro ile hücrelerden başka bir programa veri aktarıp yazmak için hata veriyor.

ilk B4 satırındaki Equi nosu ile açılan sayfada LOCA, BUSI ve CATA içindeki bilgileri aktardıktan sonra B4 den sonraki B5 satırındaki Equi nosu ile LOCA, BUSI ve CATA bilgilerine devam edecek ve ardından B6 satırındaki Equi nosu ile LOCA, BUSI ve CATA bilgilerine ve buşekilde B sütunundaki altalta sıradakiler ile devam etmeli ama ilk satırdan sonra hata veriyor.

Yardımcı olabilirmisiniz lütfen ?
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
enderem
 
Kayıt: 22 May 2019 11:49
Meslek: Teknisyen
Yaş: 48
İleti: 4
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kocaeli

Cevap: Excel Macro hata veriyor

İleti#2)  Feyzullah » 23 May 2019 18:07

Aşağıdaki gibi deneyiniz.

Kod: Tümünü seç
Public SapGuiAuto As Object
Public myapp As Object
Public Connection As Object
Public Session As Object
Private Declare Sub Sleep Lib 
"kernel32" (ByVal dwMilliseconds As Long)
Sub Klasse_hinzufuegen()
'Variablendeklaration'
Dim Equi As String
Dim Klasse As String
Dim Ent As String
Dim Name As String
Dim Datum As String
    
'SAP -Verbindung'
    Set SapGuiAuto = GetObject("SAPGUI")
    Set myapp = SapGuiAuto.GetScriptingEngine
    Set Connection 
= myapp.Children(0)
    Set Session = Connection.Children(0)
        On Error GoTo Fehler:
        Range("B4").Select
            Do While Not IsEmpty
(ActiveCell)
                Equi = ActiveCell.Text
                MsgBox Equi
                
'ActiveCell.Offset(0, 1).Select'
                LOCA = ActiveCell.Offset(0, 1).Value
                
'ActiveCell.Offset(0, 1).Select'
                BUSI = ActiveCell.Offset(0, 2).Value
                
'ActiveCell.Offset(0, 1).Select'
                CATA = ActiveCell.Offset(0, 3).Value
                Session
.findById("wnd[0]").maximize
                Session
.findById("wnd[0]/usr/ctxtRM63E-EQUNR").Text = Equi
                Session
.findById("wnd[0]/usr/ctxtRM63E-EQUNR").caretPosition = 9
                Session
.findById("wnd[0]").sendVKey 0
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02").Select
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1050/ctxtITOB-STORT").Text = LOCA
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1050/ctxtITOB-STORT").caretPosition = 4
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102B:SAPLITO0:1052/ctxtITOB-GSBER").Text = BUSI
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102B:SAPLITO0:1052/ctxtITOB-GSBER").SetFocus
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102B:SAPLITO0:1052/ctxtITOB-GSBER").caretPosition = 3
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1062/ctxtITOB-RBNR").Text = CATA
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1062/ctxtITOB-RBNR").SetFocus
                Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1062/ctxtITOB-RBNR").caretPosition = 6
                Session
.findById("wnd[0]/tbar[0]/btn[11]").press
                Session
.findById("wnd[0]").sendVKey 0
                Session
.findById("wnd[0]/tbar[0]/btn[3]").press
                Session
.findById("wnd[0]/tbar[0]/btn[11]").press
            ActiveCell
.Offset(1, 0).Select
            Loop
        Exit Sub
Fehler
:
    MsgBox " Maalesef ERROR verdi!"
End Sub
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 670
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

Cevap: Excel Macro hata veriyor

İleti#3)  enderem » 24 May 2019 14:44

Merhaba Metehan8001,
düzeltme için çok teşekkürler, şimdi çalışıyor.
Bu türde başka bir sorun yaşadığım Excel makrosu daha var, bunada yardımcı olmak için bir göz atabilirsen çok memnun olurum eğer çalışırsa Allah senden razı olsun derim.
Kullanıcı avatarı
enderem
 
Kayıt: 22 May 2019 11:49
Meslek: Teknisyen
Yaş: 48
İleti: 4
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kocaeli

Cevap: Excel Macro hata veriyor

İleti#4)  Feyzullah » 24 May 2019 14:50

Gönder gelsin, elimizden geleni yaparım.
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 670
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Excel Macro hata veriyor

İleti#5)  enderem » 24 May 2019 15:48

Merhaba,
bu dosyada ilk halinde basit şekilde tek sutundaki verileri alıp SAP 'de IE02 işlemindeki istenilen yere ekliyordu, daha sonrasında ilave bilgilerinden hepsi birden ardıardına girişleri yapılacak şekild değiştirildi ama ilk satırda hata vererek duruyor.
Ilk dosyadaki gibi offset problemi diye baktım ama çözemedim. Yardımlarınız için şimdiden sağolun.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
enderem
 
Kayıt: 22 May 2019 11:49
Meslek: Teknisyen
Yaş: 48
İleti: 4
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kocaeli

Cevap: Excel Macro hata veriyor

İleti#6)  Feyzullah » 24 May 2019 16:43

Offsetlerde dediğiniz gibi bir sıkıntı yok, dosyanızda ki boş olan hücrelerden yaptığını düşünüyorum. Bende SAP kullanıcısıyım ama aynı modül olmadığı için test edemiyorum. Aşağıdaki kodları bir deneyiniz.
Eğer yine çalışmazsa ALT+F11 kod bloğunda F8 tuşu ile adımlayarak çalıştırın ve hangi satırda hata verdiğini tespit edin.

Kod: Tümünü seç
Public SapGuiAuto As Object
Public myapp As Object
Public Connection As Object
Public Session As Object
Sub Equi_data_update
()
'Variablendklaration'
Dim Equi As String
Dim MainPlant As String
Dim Des As String
Dim ObType As String
Dim ABC As String
Dim MaintVC As String
Dim Loc As String
Dim CostC As String
Dim Sortf As String
Dim ModelNr As String
Dim ManuF
Dim Serial As String
Dim Size As String
Dim Room As String
Dim TechID As String
Dim CatalogP As String
Dim Asset As String
'SAP -Verbindung'
Set SapGuiAuto = GetObject("SAPGUI")
Set myapp = SapGuiAuto.GetScriptingEngine
Set Connection 
= myapp.Children(0)
Set Session = Connection.Children(0)
On Error GoTo Fehler:
Range("B5").Select
Do While Not IsEmpty
(ActiveCell)
MainPlant = ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
Equi 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
Des 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
ObType 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
ABC 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
MaintVC 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
Loc 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
CostC 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
Sortf 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
ModelNr 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
ManuF 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
Serial 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
Size 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
Room 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
TechID 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
CatalogP 
= ActiveCell.Text
ActiveCell
.Offset(0, 1).Select
Asset 
= ActiveCell.Text
Session
.findById("wnd[0]/usr/ctxtRM63E-EQUNR").Text = Equi
Session
.findById("wnd[0]/usr/ctxtRM63E-EQUNR").caretPosition = 9
Session
.findById("wnd[0]").sendVKey 0
Session
.findById("wnd[0]/usr/subSUB_EQKO:SAPLITO0:0152/subSUB_0152B:SAPLITO0:1525/txtITOB-SHTXT").Text = Des
If Size 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1020/txtITOB-GROES").Text = Size
If ObType 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1020/subSUB_1020A:SAPLITO0:1025/ctxtITOB-EQART").Text = ObType
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1022/txtITOB-HERST").Text = ManuF
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1022/txtITOB-TYPBZ").Text = ModelNr
If Serial 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1022/txtITOB-SERGE").Text = Serial
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1022/txtITOB-SERGE").SetFocus
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1022/txtITOB-SERGE").caretPosition = 6
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1020/subSUB_1020A:SAPLITO0:1025/ctxtITOB-EQART").Text = ObType
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\01/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1020/subSUB_1020A:SAPLITO0:1025/ctxtITOB-EQART").caretPosition = 8
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02").Select
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1050/ctxtITOB-STORT").Text = Loc
If Room 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1050/txtITOB-MSGRP").Text = Room
If Sortf 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1050/txtITOB-EQFNR").Text = Sortf
If Asset 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102B:SAPLITO0:1052/ctxtITOB-ANLNR").Text = Asset
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102B:SAPLITO0:1052/ctxtITOB-KOSTL").Text = CostC
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1062/ctxtITOBATTR-GEWRK").Text = MaintVC
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1062/ctxtITOB-IWERK").Text = MainPlant
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102C:SAPLITO0:1062/ctxtITOB-RBNR").Text = CatalogP
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1050/txtITOB-EQFNR").SetFocus
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\02/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1050/txtITOB-EQFNR").caretPosition = 10
Session
.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\04").Select
If TechID 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\04/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1060/subSUB_1060A:SAPLITO0:1065/txtITOB-TIDNR").Text = TechID
If TechID 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\04/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1060/subSUB_1060A:SAPLITO0:1065/txtITOB-TIDNR").SetFocus
If TechID 
<> "" Then Session.findById("wnd[0]/usr/tabsTABSTRIP/tabpT\04/ssubSUB_DATA:SAPLITO0:0102/subSUB_0102A:SAPLITO0:1060/subSUB_1060A:SAPLITO0:1065/txtITOB-TIDNR").caretPosition = 18
Session
.findById("wnd[0]/tbar[0]/btn[11]").press
ActiveCell
.Offset(1, -16).Select
Loop
Exit Sub
Fehler
:
MsgBox "Es ist ein Fehler aufgetreten!"
End Sub
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 670
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Excel Macro hata veriyor

İleti#7)  enderem » 27 May 2019 21:28

Merhaba Metehan8001,

dediğiniz gibi boş hücrelerde hata veriyor ve birde "DES" açıklama kısmında Türkçe dilinde yazılı olmayanlardada hata veriyor ama muhtemelen herseferinde uzunmetin kısmına yazılmasını sağlayarak çözebilirim sanırım. Bu makroları evvelde SAP PM ve MM içindeki anaverilerde sadece tek veri değişikliği için kullanıyordum ama çoklu işlemdeki problemi çözmede yardımınız sayesinde bu şekilde çok daha etkin kullanabileceğim, çok teşekkürler.
Bu arada bu konulardaki bilgi eksikliğimi gidermeye çalışacagım.
Kullanıcı avatarı
enderem
 
Kayıt: 22 May 2019 11:49
Meslek: Teknisyen
Yaş: 48
İleti: 4
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kocaeli

Cevap: Excel Macro hata veriyor

İleti#8)  Feyzullah » 27 May 2019 21:58

Iyi çalışmalar dilerim
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 670
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: AhrefsBot, Bing[Bot] ve 1 misafir

Bumerang - Yazarkafe