Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Makro modifying

VBA Makro modifying
31.03.2016 21:31:22
soletto
Hey, ich habe wieder ein Makro Problem.
Ich muss das Makro in der Excel Datei so umprogrammieren,
dass nun die Interpolierten Werte anstatt senkrecht, waagrecht geschrieben werden.
Abhängig davon, wieviel Loadcases ich habe.
Hoffe, es kann mir jemand helfen.
Word Datei wo eingelesen werden soll: https://www.herber.de/bbs/user/104695.xlsm
Werkstoffdatenbank: https://www.herber.de/bbs/user/104696.xlsm
Also einfach von senkrecht nach waagrecht ändern
lg, vielen Dank,
Stefan

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro modifying
01.04.2016 00:42:36
fcs
Hallo Stefan,
aus deinem Beispielblatt "Test" wird nicht eindeutig klar, wohin (welche Zeile) das Ergebnis geschrieben werden soll.
Deshalb hier das Makro beispielhaft umgestellt, so das es spaltenweise
die Berechnungen abarbeitet.
Bei den Namen der Variablen darf man schon etwas kreativer sein.
Gruß
Franz
Sub Test()
Dim pfad$, datei$
Dim wkbDieses As Workbook, wkbData As Workbook
Dim wksZiel As Worksheet, wksData As Worksheet
Dim Spalte&, SpalteMax&
Dim arrSuche As Variant
Set wkbDieses = ActiveWorkbook
Set wksZiel = wkbDieses.Sheets("HPElbows")  'in deinem Beispiel "Test"
With wksZiel
SpalteMax = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
pfad = wkbDieses.Path & "\"
datei = "103601_Werkstoffe_DB.xlsm"
Set wkbData = Workbooks.Open(Filename:=pfad & datei, ReadOnly:=True)
Set wksData = wkbData.Sheets("Zentrale")
With wksZiel
'Zeilenbereich mit den Werten (T ?) die in dem Berechnugsblatt eingetragen werden  _
sollen
'Bereich A3:?11
arrSuche = .Range(.Cells(3, 1), .Cells(11, SpalteMax))
End With
' Yield Strenth @ TRaum for
For Spalte = 3 To SpalteMax
wksData.Range("I4") = arrSuche(1, Spalte) 'T-Wert
Application.Run datei & "!WerkstoffLaden", wksZiel.Range("B2")
If IsError(wksData.Range("M1")) Then
wksZiel.Cells(10, Spalte) = ""
Else
wksZiel.Cells(10, Spalte) = wksData.Range("M1")
End If
Next
wkbData.Close savechanges:=False
End Sub

Anzeige
AW: VBA Makro modifying
02.04.2016 18:08:33
soletto
Hey vielen Dank für die Hilfe.
ALso die Temperaturzeile ist 2 und die Zeile für die Wanddicke ist 3
Eingetragen sollen die Interpolierten Werte in Zeile 2

AW: VBA Makro modifying
02.04.2016 19:11:53
soletto
Hey was bedeutet die 11 in dem Code?
Ich habe nun etwas programmiert aber noch probleme.
Ich würde noch das einlesen von "s" und dem Werkstoff brauchen.
Also Trage mir Material Temperatur s in die Werkstoffdatenbank und hole mir den entsprechenden Wert aus der Datenbank. Schreibe ihn mir in zeile 5. Funktionieren dud es aber noch nicht ganz :-(
https://www.herber.de/bbs/user/104730.xlsm
https://www.herber.de/bbs/user/104731.xlsm
Hier mein code:
Sub Einlesen()
Dim pfad$, datei$
Dim wkbDieses As Workbook, wkbData As Workbook
Dim wksZiel As Worksheet, wksData As Worksheet
Dim Spalte&, SpalteMax&
Dim arrSuche As Variant
Set wkbDieses = ActiveWorkbook
Set wksZiel = wkbDieses.Sheets("Test")  'in deinem Beispiel "Test"
With wksZiel
SpalteMax = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
pfad = wkbDieses.Path & "\"
datei = "103601_Werkstoffe_DB.xlsm"
Set wkbData = Workbooks.Open(Filename:=pfad & datei, ReadOnly:=True)
Set wksData = wkbData.Sheets("Zentrale")
With wksZiel
'Zeilenbereich mit den Werten (T ?) die in dem Berechnugsblatt eingetragen werden _
sollen
'Bereich A3:?11
arrSucheT = .Range(.Cells(3, 1), .Cells(11, SpalteMax)) ' was bedeutet 11?
arrSuches = .Range(.Cells(4, 1), .Cells(11, SpalteMax))
End With
' Yield Strenth @ TRaum for
For Spalte = 3 To SpalteMax
wksData.Range("I4") = arrSucheT(3, Spalte) 'T-Wert
wksData.Range("I3") = arrSuches(4, Spalte) 's-Wert
'   Application.Run datei & "!WerkstoffLaden", a(z, 1)
Application.Run datei & "!WerkstoffLaden", wksZiel.Cells(2, Spalte) ' hier soll jeder  _
werkstoff in die daten eingetragen werden für jede gefundene Spalte
If IsError(wksData.Range("I1")) Then
wksZiel.Cells(5, Spalte) = "" 'Ergebnisausgabe oin Zeile 5
Else
wksZiel.Cells(5, Spalte) = wksData.Range("I1")
End If
Next
wkbData.Close savechanges:=False
End Sub

Anzeige
AW: VBA Makro modifying
04.04.2016 08:23:27
fcs
Hallo solette,
lass den Umweg über das Array weg.
Dies wird erst bei sehr vielen Daten für die Makroausführung relevant
Hruß
Franz
Sub Einlesen()
Dim pfad$, datei$
Dim wkbDieses As Workbook, wkbData As Workbook
Dim wksZiel As Worksheet, wksData As Worksheet
Dim Spalte&, SpalteMax&
Dim arrSuche As Variant
Set wkbDieses = ActiveWorkbook
Set wksZiel = wkbDieses.Sheets("Test")  'in deinem Beispiel "Test"
With wksZiel
SpalteMax = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
pfad = wkbDieses.Path & "\"
datei = "103601_Werkstoffe_DB.xlsm"
Set wkbData = Workbooks.Open(Filename:=pfad & datei, ReadOnly:=True)
Set wksData = wkbData.Sheets("Zentrale")
' Yield Strenth @ TRaum for
For Spalte = 3 To SpalteMax
'Werte in Rechenblatt eintragen
wksData.Range("F19") = wksZiel.Cells(2, Spalte).Value 'Werkstoff
wksData.Range("I3") = wksZiel.Cells(3, Spalte).Value 's-Wert
wksData.Range("I4") = wksZiel.Cells(4, Spalte).Value 'T-Wert
'Ergebnis zurückschreiben
Application.Run datei & "!WerkstoffLaden", wksZiel.Cells(5, Spalte)
If IsError(wksData.Range("I1")) Then
wksZiel.Cells(5, Spalte) = ""
Else
wksZiel.Cells(5, Spalte) = wksData.Range("I1")
End If
Next
wkbData.Close savechanges:=False
End Sub

Anzeige
AW: VBA Makro modifying
04.04.2016 18:28:26
soletto
Vielen Dank,
aber verdammt warum check ich dieses vb programmieren nicht :-(
Echt ein Buch mit 7 Siegeln :-(

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige