Zellen auslesen2
hallo zusammen,
was muss ich an dem nachfolgenden makro ändern, damit es sich seine gewünschten informationen aus dem Tabellenblatt "Tabelle2" holt?
Dass diese werte dann im automatisch entstehenden tabellenblatt "auswertung" stehen ist ok, wo dann der minumum und maximum wert steht ist auch eher nebensächlich.
Makro:
sub zellen()
Dim iRow As Long
Dim jRow As Long
Dim strAktSheet As String
Dim iSheets As Integer
Application.ScreenUpdating = False
strAktSheet = ActiveSheet.Name
For iSheets = Worksheets.Count To 1 Step -1
If Sheets(iSheets).Name = "Auswertung" Then
Application.DisplayAlerts = False
Sheets(iSheets).Delete
Application.DisplayAlerts = False
Exit For
End If
Next
With Worksheets.Add
.Name = "Auswertung"
End With
For iRow = 1 To Sheets(strAktSheet).Range("B65536").End(xlUp).Row
If Sheets(strAktSheet).Cells(iRow, 2) = "%%RES2" Then GoTo Ende
If Sheets(strAktSheet).Cells(iRow, 2) = "%%RES1" Then
For jRow = iRow + 5 To Sheets(strAktSheet).Range("B65536").End(xlUp).Row
If Sheets(strAktSheet).Cells(jRow, 2) = "%*" Then
Sheets(strAktSheet).Range("B" & iRow + 5 & ":B" & jRow - 1).Copy
Sheets("Auswertung").Cells(Sheets("Auswertung").Range("A65536").End(xlUp).Offset(1, 0).Row, 1).PasteSpecial
Exit For
End If
Next jRow
End If
Next iRow
Ende:
Sheets(strAktSheet).Range("AE696") = Application.WorksheetFunction.Max(Sheets("Auswertung").Range("A2:A" & Sheets("Auswertung").Range("A65536").End(xlUp).Row))
Sheets(strAktSheet).Range("AE697") = Application.WorksheetFunction.Min(Sheets("Auswertung").Range("A2:A" & Sheets("Auswertung").Range("A65536").End(xlUp).Row))
End Sub
wäre schön wenn ich hilfe bekäme. oliver? vllt von dir?
gruß sebal
Antwort schreiben
Antwort 1 von coros vom 07.11.2019, 13:22 Options
Hallo sebal,
ändere in der Zeile
[b]strAktSheet = ActiveSheet.Name[/b]
den Namen "ActiveSheet.Name" gegen den Namen "Tabelle2". Das sollte dann folgendermaßen aussehen
[b]strAktSheet = "Tabelle2"[/b]
und sollte funktionieren.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von sebal vom 07.11.2019, 13:41 Options
hallo oliver,
danke, hat funktioniert!
noch etwas anderes:
bei meinem programm gibt es 6 tabellenblätter
Diagramm1
Diagramm2
Diagramm3
Auswertung
Tabelle1
Tabelle3
was muss ich machen damit das Tabellenblatt "Diagramm3" nach ablauf des programms auf dem bildschirm erscheint.
weist du das evtl?
gruß sebal
Antwort 3 von coros vom 07.11.2019, 13:47 Options
Hallo sebal
[b]Sheets("Diagramm3").Activate[/b]
sollte das Tabellenblatt mit dem Namen "Diagramm3" aktivieren und anzeigen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von sebal vom 07.11.2019, 13:49 Options
hallo oliver,
ich hätte da noch eine frage:
das folgende ist ein kleiner auszug aus meinem programm, in der letzten zeile steht in den klammern der dateiname dessen datei welche mit dem programm geöffnet werden soll. ich möchte mit meinem programm allerdings verschiedene dteien öffnen und dazu nicht immer den dateinamen in die klammer schreiben, kann man das automatisieren?
Range("B1:K8700").Select
Application.CutCopyMode = False
Selection.Copy
Windows("TB-Temperaturen.xls").Activate
Sheets("Tabelle1").Activate
Range("B1").Select
ActiveSheet.Paste
Windows("E3116_case10_mule_01.MUF").Activate
danke, gruß sebal
Antwort 5 von sebal vom 07.11.2019, 13:51 Options
hallo,
und wo genau soll ich
sheets("Diagramm3").Activate
hinschreiben?
am ende des makros, am anfang, einfach irgendwo hin?
gruß sebal
Antwort 6 von Marie vom 07.11.2019, 13:55 Options
Zitat:
was muss ich machen damit das Tabellenblatt "Diagramm3" nach ablauf des programms auf dem bildschirm erscheint.
nach ablauf des programms Sheets("Diagramm3").Activate
hast doch selbst gesagt wo Du es hinhaben willst.
Gruß Marie
Antwort 7 von coros vom 07.11.2019, 13:55 Options
Hallo sebal,
[b]Sheets("Diagramm3").Activate[/b]
schreibst Du ganz am Ende eine Zeile vor dem Eintrag "End Sub".
Mit dem Befehl, den Du da ansprichst, wird kein Progamm geöffnet, sondern ein bereits geöffnetets Programm wieder in den Vordergrund geholt. Daher weiß ich nicht so richtig, was Du möchtest.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 8 von sebal vom 07.11.2019, 13:56 Options
hallo oliver,
das was ich erreichen wollte mit
Sheets("Diagramm3").Activate
hat nicht funktioniert
gibts danoch was anderes?
hast du meine frage auch verstanden?
ich möchte einfach nur dass nach dem ablauf des programms zuerst das Tabellenblatt "Diagramm3" angezeigt wird, und nicht z.B. Tabellenblatt "Tabelle3" (in dem nur lauter werte stehen)
gruß sebal
Antwort 9 von Marie vom 07.11.2019, 14:02 Options
Zitat:
dazu nicht immer den dateinamen in die klammer schreiben, kann man das automatisieren?
Wenn der Dateiname öfter vorkommt, dann schreib ihn als Variable rein
Dim strDatei as String
strDatei = "E3116_case10_mule_01.MUF"
und an der Stelle wo Du sie brauchscht schreibst Du dann:
Windows(strDatei).Activate
Gruß Marie
PS: Oder auch als Konstante definieren siehe Const-Anweisung in der VBA Hilfe
Antwort 10 von sebal vom 07.11.2019, 14:02 Options
hallo,
das hat nun fast funktioniert, d.h. es hat funktioniert, aber jetzt erscheint noch der Visual Basic Editor als erstes, bekommt man den weg so dass wriklich das diagramm als erstes zu sehen ist?
gruß sebal
Antwort 11 von sebal vom 07.11.2019, 14:05 Options
hallo marie,
danke, aber ich meine:
die datei heißt nicht immer E3116_case10_mule_01.MUF
sie kann ebenso "HUR7_123.MUF" heißen oder irdendwie anders. das sind zB 2 Datein die vüllig seperat von dem programm behandelt werden sollen
Antwort 12 von coros vom 07.11.2019, 14:10 Options
Hallo sebal,
auf eines kannst Du Dich verlassen. Wenn ich hier schreibe,
[b]Sheets("Diagramm3").Activate[/b]
aktiviert das Blatt mit dem Namen "Diagramm3", dann ist das auch so. Das hat nichts damit zu tun, dass ich Deine Frage nicht verstanden habe. Das hat auch nichts damit zu tun, dass ich von mir selber so überzeugt bin und mir keine Fehler unterlaufen, denn wenn ich hier etwas hinschriebe, habe ich das vorher auch getestet. Du hast wohl eher einen Fehler irgendwo eingebaut, wenn es nicht funktioniert.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 13 von sebal vom 07.11.2019, 14:17 Options
hallo,
sorry es funktioniert doch!
ich hätte noch eine frage:
wie erstelle ich einen button auf den ich klicken kann um dann eine datei auszuwählen auf die sich mein programm beziehen soll, dieser button sollte irgendwo im Tabellenblatt tabelle3 stehen und es soll folgendes drauf stehen:
"Bitte neue MUF-Rechnung einlesen"
wisst ihr da Rat? wie gesagt sorry oliver
gruß sebal
Antwort 14 von coros vom 07.11.2019, 14:38 Options
Hallo sebal,
folgendes Makro öffnet ein Dialogfeld zur Auswahl einer Datei. Der ausgewählte Dateiname wird Dir dann in einer MessageBox ausgegeben. Der Dateiname steht in der Variablen "strDateiname".
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.[b]Option Explicit
Sub Dateiname()
Dim varDatei As Variant
Dim strDateiname As String
Dim iPostion As Integer
varDatei = Application.GetOpenFilename("alle Dateien, *.*")
If varDatei = False Then Exit Sub
iPostion = 0
Do While InStr(iPostion + 1, varDatei, "\", vbTextCompare) > iPostion
iPostion = InStr(iPostion + 1, varDatei, "\", vbTextCompare)
Loop
strDateiname = Mid(varDatei, iPostion + 1)
MsgBox strDateiname
End Sub[/b]
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 15 von sebal vom 07.11.2019, 14:42 Options
hallo oliver,
bei deiner Antwort 14 muss ich passen, auf was genau bezieht sich dieses makro? auf meine antwort 4?
danke, gruß sebal
Antwort 16 von coros vom 07.11.2019, 14:45 Options
Hallo sebal,
auf AW13. Den Button dazu und die Buttonbeschriftung musst Du per Hand selber erstellen. Wie das geht, kannst Du auf
meiner HP in der
Rubrik Anleitungen und dort dann in der
Anleitungsnummer 4 nachlesen. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 17 von sebal vom 07.11.2019, 14:48 Options
hallo oliver,
ok, da werd ich mal rein schauen, aber ich habe dein makro jetzt getestet und das einzige was passiert ist: ich kann eine datei öffnen und dann wird mir mit einer msg box angezeigt wie diese heist, das wollte ich nicht, aber trotzdem danke. ich wollte einen button oder schaltfläche der in einen meiner tabellenblätter erscheint und auf den ich klicken kann und anschließend eine datei auswählen
danke,
gruß sebal
Antwort 18 von sebal vom 07.11.2019, 14:52 Options
hallo oliver,
deine HP ist echt super, da steht genau das was ich wollte, danke, wie gesagt wenn ich damit probleme habe, meld ich mich, wiest du noch etwas zu antwort 4?
danke
gruß sebal
Antwort 19 von coros vom 07.11.2019, 14:53 Options
Hallo sebal,
was Du schreibst ist schlicht weg falsch. Mit dem Makro wird Dir keine Datei geöffnet. Es wird der Pfad und der Name der ausgewählten Datei in eine Variable (Variablenname: varDatei ) geschrieben. Durch die dahinter geschaltete Schleife wird der Dateiname vom Pfad getrennt und der Name wird in Variable "strDateiname " geschrieben. Das ist dann die Variable, die Du dann benötigst, da in der Variablen der Dateiname steht, den Du ja haben wolltest
Du solltest bevor Du hier immer so Schnellschüsse verteilst, Diuch mit den Makro ausgiebig beschäftigen. Denn ansonsten macht das keinen Spaß mehr.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 20 von coros vom 07.11.2019, 15:06 Options
Hallo,
meine ganzen Antworten nach AW 4 beziehen sich auf Deine AW4.
Wie bereits in AW7 geschrieben, Mit dem Befehl "Windows("E3116_case10_mule_01.MUF").Activate" wird kein Progamm geöffnet, sondern ein bereits geöffnetets Programm wieder in den Vordergrund geholt. Daher weiß ich nicht so richtig, was Du möchtest.
Den variablen Dateinamen erhälst Du ja mit dem Makro aus AW14.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.