Text aus Zellen vorlesen lassen. (Knifflig zu beschreiben)
#1
Brick 
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


.xlsx   1zu1beispiel.xlsx (Größe: 22,97 KB / Downloads: 4)
Top
#2
Ich sehe in Deiner Beispieildatei kein Makro.

Vielleicht brauchst Du nur die Speak Methode
Top
#3
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:
  • zwoologe
Top
#4
Hallo Storax,

das Makro existiert nur in meiner Tabelle. Das Beispiel hier gibt nur die Anordnung der Zellen 1:1 wieder.
Top
#5
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:
  • zwoologe
Top
#6
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:
Top
#7
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
Top
#8
Hallo,

es hat sich erledigt. Ich muss einen ganz anderen Weg gehen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste