Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suche VBA-Einfügung "ausgegebener Wert ungleich 0"

Suche VBA-Einfügung "ausgegebener Wert ungleich 0"
02.11.2006 12:54:34
HannaG.
Wert nur auswerfen, wenn "ungleich 0 oder ungleich "...".
(Die 3 Punkte "..." wirft Excel aus, wenn es zu Schwierigkeiten mit DDE kommt)
Wie sollte man einen entsprechenden Code in die u.g. Formel einfügen?
Danke
Dim myArray(540)
Dim bolTimer As Boolean
Sub Show_change()
For i = 7 To 540
If Range("D" & i).Value myArray(i - 7) Then
Application.ScreenUpdating = False
Rows(i).Copy
Rows(2).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("D" & i).Select
Application.ScreenUpdating = True
myArray(i - 7) = Range("D" & i)
End If
Next i
Call Timer
End Sub
Sub Timer()
Dim NextTime As Date
If Not bolTimer Then Exit Sub
NextTime = Now + TimeValue("00:00:20")
Application.OnTime NextTime, "Tabelle2.Show_Change"
End Sub
Sub initialize_array()
For i = 7 To 540
myArray(i - 7) = Range("D" & i)
Next i
End Sub
Sub Start_Ueberwachung()
initialize_array
bolTimer = True
Timer
End Sub
Sub Stopp_Ueberwachung()
bolTimer = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche VBA-Einfügung "ausgegebener Wert ungleich 0"
02.11.2006 13:30:53
HannaG.
Ach so: Evtl. mißverständlich: Der Wert "0" oder "..." soll nicht nur nicht ausgeben werden, sondern schon beim Einlesen außen vor bleiben, damit er nicht andere Werte blockiert.
AW: Suche VBA-Einfügung "ausgegebener Wert ungleich 0"
02.11.2006 14:13:56
Stefan
Hallo Hanna,
Ich glaube dieses Posting wird keinem was sagen der die Historie nicht kennt, weil Du nicht gesagt hast, was der Code eigentlich macht...
Fuer mich ist jetzt die Frage was Du mit dem "beim Einlesen aussen vor bleiben" meinst. Ich hoffe Du sprichst da nicht davon was in Deiner zu Grunde liegenden Liste passiert, sondern nur was dann fuer oben in Zeile 2 geschrieben wird.
Ersetz dafuer mal Show_change

Sub Show_change()
For i = 7 To 507
If Range("C" & i).Value <> myArray(i - 7) Then
If Not (Range("C" & i).Value = 0) And Not (Range("C" & i).Value = Chr(133)) Then
Application.ScreenUpdating = False
Rows(i).Copy
Rows(2).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C" & i).Select
Application.ScreenUpdating = True
End If
myArray(i - 7) = Range("C" & i)
End If
Next i
Call Timer
End Sub

Interessanterweise sind 3 Punkte offenbar ein spezielles Zeichen, chr(133). Hat mich voellig aus der Bahn geworfen, dass "..." nicht funktioniert.
Also, probiers mal aus, und sag Bescheid wenns nicht hinhaut.
Schoene Gruesse
Stefan
Anzeige
AW: Suche VBA-Einfügung "ausgegebener Wert ungleich 0"
02.11.2006 14:15:23
Stefan
Und sorry, ersetze Spalte C mit Spalte D... mein "Versuchsaufbau" laeuft noch auf Spalte C...
AW: Suche VBA-Einfügung "ausgegebener Wert ungleich 0"
02.11.2006 16:32:35
HannaG.
Läuft perfekt. Aus irgendeinem Grund zählt jetzt auch der Cursor nicht mehr nervtötend jede Zelle herunter. Also mehr als perfekt.
AW:Natürlich weitere Nachfrage:
02.11.2006 17:03:58
HannaG.
Stefan, wenn es hier soviel Kompetenz gibt, muß ich wohl noch einen nachlegen:)
Im Bord stand hier etwas von Sound. Mit der u.g. Formel.
Kann man den Code noch so reinschieben, daß er eine Wave abspielt, wenn sich der Wert geändert hat. Normal nicht nöig, da permanten Änderung, teilweise aber auch 1-2 h nix und da verpennt man eine Änderung.
LG
Hanna
Option Explicit
Declare

Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

Sub Abspielen()
If Cells(1, 1).Value < 0 Then
Call sndPlaySound32("c:\change.wav", 0)
End If
End Sub

Anzeige
AW: AW:Natürlich weitere Nachfrage:
02.11.2006 17:37:34
Stefan
Hallo Hanna,
Neue Show_change:
Sub Show_change()
For i = 7 To 507
If Range("D" & i).Value <> myArray(i - 7) Then
If Not (Range("D" & i).Value = 0) And Not (Range("D" & i).Value = Chr(133)) Then
Application.ScreenUpdating = False
Rows(i).Copy
Rows(2).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("D" & i).Select
Call sndPlaySound32("c:\i386\blip.wav", 1)
Application.ScreenUpdating = True
End If
myArray(i - 7) = Range("D" & i)
End If
Next i
Call Timer
End Sub

Diesmal angepasst auf Spalte "D".
Dazu musst Du den Pfad in der Zeile
Call sndPlaySound32("c:\i386\blip.wav", 1)
so anpassen, dass er auf eine .wav Datei auf deinem Rechner zielt - sonst funktionierts natuerlich nicht. Mach auch aus der 1 hinter dem Pfad keine 0, sonst wirst Du ein Problem mit der DDE kriegen, da das ganze Makro dann ein wenig laenger laeuft (naemlich um die Laenge deiner .wav-Datei laenger).
Zu guter letzt noch
Private Declare_Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

ganz oben in das VBA-Modul kopiert, und das Ding sollte laufen.
Schoene Gruesse
Stefan
Anzeige
AW: AW:Natürlich weitere Nachfrage:Es hängt!
02.11.2006 23:57:11
HannaG.
Hallo,
hab
Private Declare_Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long
in Modul1 kopiert. Beim Debuggen kommt die Fehlermeldung "Fehler beim Kompilieren"
Erwartet : Anweisungsende.
Wo hängtes?
AW: AW:Natürlich weitere Nachfrage:Es hängt!
03.11.2006 00:39:29
Stefan
Hallo Hanna,
Sorry, Fehler von mir:
Wenn Du's in Modul1 kopierst, muss es heissen:
Declare Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

Gute Nacht!
Stefan
Anzeige
AW: AW:Natürlich weitere Nachfrage:Es hängt!
03.11.2006 13:13:10
HannaG.
NA, also. Es funktioniert. Aber immer wieder ein neuer Wehrmutstropfen bei mir in der Praxis:
Hab hier weiterhin Probleme mit dem DDE. In der Spitze hab ich bei verschiedenen Sheets fast 8000 Verlinkungen. Das führt zu den o.g. Aussetzern, Verzögerungen oder Hängern. Der D$-Wert, der für deine Formel nötig ist, ist da nur ein kleiner Belastungsfaktor. Für mich wichtig ist aber nur die erste, nach oben kopierte Zeile.
Fazit die Frage: Ist es vielleicht möglich, daß die Formeln erst "aktiviert" werden, und damit die Daten ziehen, wenn sie in der ersten Reihe gelandet sind? Die D$-Reihe natürlich ausgenommen.
LG
HannaG.
Anzeige
AW: AW:Natürlich weitere Nachfrage:Es hängt!
03.11.2006 14:06:42
Stefan
Hallo Hanna,
Das kann ich Dir nicht beantworten, da ich keine Ahnung hab wie die DDE arbeitet und wie deine Verlinkungen aussehen.
Ist die DDE die Du nutzt irgendwie oeffentlich zugaenglich, oder gibts dafuer irgendwelche Beschreibungen?
Schoene Gruesse
Stefan
AW: AW:Natürlich weitere Nachfrage:Es hängt!
03.11.2006 14:21:24
HannaG.
Also Beschreibungen gibt es dafür nicht. Der Link für ein Feld sieht dann in etwa so aus:
=GBB|DVB!'579033/Y'
wobei in der Spalte nur immer die 579033 wechselt.
Vermutlich eine etwas dünne Info.
LG
Hanna
AW: AW:Natürlich weitere Nachfrage:Es hängt!
03.11.2006 14:34:07
Stefan
Sorry, aber da muss ich passen...
Schoene Gruesse
Stefan
AW: AW:Natürlich weitere Nachfrage:Es hängt!
03.11.2006 00:42:44
HannaG.
Hallo,
hab
Private Declare_Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long
in Modul1 kopiert. Beim Debuggen kommt die Fehlermeldung "Fehler beim Kompilieren"
Erwartet : Anweisungsende.
Wo hängtes?
Anzeige

53 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige