Registriert seit: 20.02.2018
Version(en): 2016 Pro +
01.09.2019, 19:02
Hallo zusammen,
ich benötige einen VBA Code der es möglich macht bestimmte Zellen in Spalte E (E4:E102) von Excel vorlesen zu lassen.
In meiner Beispieltabelle sind die grauen Bereiche jene wo sich die Werte ständig verändern. Die roten Zellen in den grauen Bereichen werden überwacht und triggern ein bestehendes Makro wenn sich innerhalb dieser die Werte ändern. Bisher wurde ein wav fille abgespielt, immer das gleiche egal welche Zelle getriggert hatte. Aktuell haben sich die zu überwachenden Zellen vermehrt so dass ich jetzt immer am suchen bin welche Zelle sich gemeldet hat. Darum nun die vorlese Variante.
Der trigger befindet sich immer in der selben Zeile wie die Zelle die vorgelesen werden soll.
Wenn also Zelle M45 triggert, soll der Inhalt von Zelle E45 vorgelesen werden. Bei L5 soll E5 vorgelesen werden, bei F67 soll E67 vorgelesen werden usw.
Das Makro muss also in allen grauen Bereichen funktionieren, immer dort wo die Zellen rot gefüllt sind (rote Zellen befinden sich jeden Tag woanders).
Vielen Dank für Hilfe oder einer Lösung.
LG
zwoo
1zu1beispiel.xlsx (Größe: 22,97 KB / Downloads: 4)
Registriert seit: 25.04.2016
Version(en): 2013
Ich sehe in Deiner Beispieildatei kein Makro.
Vielleicht brauchst Du nur die
Speak Methode
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin!
Application.Speech.Speak Range("XY1").Value
Das entsprechende Makro, welches immer das gleiche .WAV abspielt, hast Du ja schon.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• zwoologe
Registriert seit: 20.02.2018
Version(en): 2016 Pro +
Hallo Storax,
das Makro existiert nur in meiner Tabelle. Das Beispiel hier gibt nur die Anordnung der Zellen 1:1 wieder.
Registriert seit: 25.04.2016
Version(en): 2013
Gut, dann bist Du ja sicher in der Lage Range("A42").speak wie benötigt einzubauen.
Viel Erfolg dabei!
Folgende(r) 1 Nutzer sagt Danke an Storax für diesen Beitrag:1 Nutzer sagt Danke an Storax für diesen Beitrag 28
• zwoologe
Registriert seit: 20.02.2018
Version(en): 2016 Pro +
01.09.2019, 21:16
(Dieser Beitrag wurde zuletzt bearbeitet: 01.09.2019, 21:16 von zwoologe.)
Hallo RPP63,hier ist der Code für den wav trigger:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Interior.Color <> vbRed Then Exit Sub
Call TestPlayWavFile
End Sub
-----------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Intersect(Target, Columns("F:S")) Is Nothing Then Exit Sub
With Target.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub
Wo kommt Dein Code hin? Und woher weiß die Codezeile welche Zelle in Spalte E gelesen werden soll?
Ich meine, wenn ich eine Zelle als trigger auswähle, sagen wir M50 dann soll die Zelle E50 vorgelesen werden.
Das ist das Makro das ich von Euch brauche und dann anstelle von TestPlayWavFile starte. Ich bitte um weitere Hilfe.
Gruß
zwoo
Hallo Storax,
wie kommst du auf A42? Die Tabelle beginnt erst bei E und endet bei T.
Es soll auch nicht immer die gleiche Zelle vorgelesen werden sondern eine von 99 Zellen (E4 bis E102).
Bestimmt schreiben wir gerade aneinander vorbei. :19:
Registriert seit: 20.02.2018
Version(en): 2016 Pro +
Die bisherigen Vorschläge lesen immer ein und die selbe Zelle vor.
Irgendwie fehlen da noch Variablen oder Strings (keine Ahnung was) damit es wie gewünscht funktioniert.
Wenn wir uns also meine Beispieltabelle anschauen finden wir mehere Textspalten (Text) und mehere Zahlenspalten (grau).
Die roten Zellen sind dynamisch und damit jeden Tag woanders innerhalb der grauen Bereiche. Heute hier und Morgen dort. Aber ich widerhole mich, immer innerhalb der grauen Bereiche. Es kann vorkommen das 20 rote Zellen gesetzt werden müssen. Nennen wir sie einfach Prüfmarken.
Die Prüfmarken können nur in den Zeilen 4 bis 102 und in den Spalten F,G,I,J,L,M,O,P,R und S gesetzt werden.
Wenn ich also mehere Prüfmarken gesetzt habe beginne ich mit dem einscannen von Chargen, die werden automatisch
innerhalb meiner Tabelle zugeordnet und hochgezählt. Treffe ich mit einen scan eine der Prüfmarken dann soll die Zelle in Spalte E die sich in der selben Zeile wie die Prüfmarke befindet, vorgelesen werden.
Als dynamisches beispiel: Prüfmarken wurden in den Zellen F4, J9, L25 und O17 gesetzt, wird eine bedient sartet ein Makro , dem aber die Anweisung fehlt die Zellen E4, E9, E25 oder E17 vorzulesen, je nach dem welche Prüfmarke getriggert hat.
Das Makro müsste also selbst erkennen von welcher Zelle es gestartet wurde um dann in der gleichen Zeile den Text aus Spalte E vorzulesen.
Die Nuss ist Euch wohl zu hart? :05: Kein richtiger Anreiz vorhanden hmm? Ok Ok. dann eben so:
Ich spende diesen Forum einen Geldbetrag von sagen wir 30 € , wenn ein User es schafft mich in dieser Sache zufrieden zu stellen.
Versprochen! :100:
Grüße
zwoo
Registriert seit: 20.02.2018
Version(en): 2016 Pro +
Hallo,
es hat sich erledigt. Ich muss einen ganz anderen Weg gehen.