AW: Sorry, falsche Spalte
12.03.2016 21:14:06
soletto
Irgendwie funktioniert das nicht :-(
diei letzte Zelle könnte ich ja mit der Formel max(A:A) ermitteln und so dann das Problem lösen.
Aber ich kann das Makro dann nciht von einem anderen Tabellenblatt aus ausführen. Irgendwie echt vertrackt die sache :-(
Das ist mein Makro:
Das Problem an der Sache ist das obwohl ich mit der wennbedingung "" leere zeilen habe werden diese mitgezählt. Anscheinend bis zu der zeile, wo die formel endent und eine komplet leere zelle ist. Probierte mit.
Option Explicit
Sub DatenEinlesenHPPipes()
Dim pfad$, datei$
Dim dieses As Workbook, dasandere As Workbook
Dim dies As Worksheet, das As Worksheet
Dim z&, zmax&
Dim a As Variant
Set dieses = ActiveWorkbook
Set dies = Sheets("HPPipe")
zmax = dies.Range("A" & dies.Rows.Count).End(xlUp).Row
pfad = ActiveWorkbook.Path & "\"
datei = "103601_Werkstoffe_DB.xlsm"
Workbooks.Open Filename:=pfad & datei
Set dasandere = ActiveWorkbook
Set das = dasandere.Sheets("Zentrale")
a = dies.Range("D1:AV" & zmax)
' Yield Strenth @ Tmin for checking duktility
For z = 3 To zmax
das.Range("I3") = a(z, 14)
das.Range("I4") = a(z, 15)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("I1")) Then
dies.Range("AE" & z) = ""
Else
dies.Range("AE" & z) = das.Range("I1")
End If
Next
' Yield Strenth @ TRaum for
For z = 3 To zmax
das.Range("I3") = a(z, 14)
das.Range("I4") = a(z, 16)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("I1")) Then
dies.Range("AF" & z) = ""
Else
dies.Range("AF" & z) = das.Range("I1")
End If
Next
' Yield Strenth @ T1
For z = 3 To zmax
das.Range("I3") = a(z, 14)
das.Range("I4") = a(z, 18)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("I1")) Then
dies.Range("AG" & z) = ""
Else
dies.Range("AG" & z) = das.Range("I1")
End If
Next
' Yield Strenth @ T2
For z = 3 To zmax
das.Range("I3") = a(z, 14)
das.Range("I4") = a(z, 20)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("I1")) Then
dies.Range("AH" & z) = ""
Else
dies.Range("AH" & z) = das.Range("I1")
End If
Next
' Yield Strenth @ T3
For z = 3 To zmax
das.Range("I3") = a(z, 14)
das.Range("I4") = a(z, 22)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("I1")) Then
dies.Range("AI" & z) = ""
Else
dies.Range("AI" & z) = das.Range("I1")
End If
Next
' Yield Strenth @ T4
For z = 3 To zmax
das.Range("I3") = a(z, 14)
das.Range("I4") = a(z, 24)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("I1")) Then
dies.Range("AJ" & z) = ""
Else
dies.Range("AJ" & z) = das.Range("I1")
End If
Next
' Yield Strenth @ T5
For z = 3 To zmax
das.Range("I3") = a(z, 14)
das.Range("I4") = a(z, 26)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("I1")) Then
dies.Range("AK" & z) = ""
Else
dies.Range("AK" & z) = das.Range("I1")
End If
Next
' Reading of alpha
For z = 3 To zmax
Application.Run datei & "!WerkstoffLaden", a(z, 1)
dies.Range("AO" & z) = das.Range("I30")
' Reading of ft
Application.Run datei & "!WerkstoffLaden", a(z, 1)
dies.Range("AP" & z) = das.Range("I29")
Next
' Rm bei Tmax (1-5)
For z = 3 To zmax
das.Range("I4") = a(z, 40)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("Q1")) Then
dies.Range("AR" & z) = ""
Else
dies.Range("AR" & z) = das.Range("Q1")
End If
Next
' E Modul bei Tmax (1-5)
For z = 3 To zmax
das.Range("M3") = a(z, 40)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("M1")) Then
dies.Range("AS" & z) = ""
Else
dies.Range("AS" & z) = das.Range("M1")
End If
Next
' Yield Strenth @ TRaum for
For z = 3 To zmax
das.Range("I4") = a(z, 16)
Application.Run datei & "!WerkstoffLaden", a(z, 1)
If IsError(das.Range("M1")) Then
dies.Range("AV" & z) = ""
Else
dies.Range("AV" & z) = das.Range("M1")
End If
Next
dasandere.Close savechanges:=False
End Sub