Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA if then Problem
22.01.2008 20:14:00
Timo
Hallo,
zunächst einmal: ich bin VBA Laie, versuche mich aber manchmal trotzdem dran, aufgenommene Makros weiterzubearbeiten.
Mein "Mischmakro" sieht wie folgt aus:

Sub Versuch()
If Range("Y51") = 2 Then
ActiveChart.SetSourceData Source:=Sheets("Borr. Analysis").Range("X46:Z46")
End If
End Sub


Ihr werdet bestimmt erkennen, dass da was nicht klappen kann. Zumindest bekomme ich immer eine Fehlermeldung ("Run time error '91') Object Variable or With block variable not set."
Was ich vorhabe: Wenn in Zelle Y51 der Wert "2" auftaucht, so soll die Grafik nur die Range X46:Z46 anzeigen.
Danke schonmal

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA if then Problem
22.01.2008 20:22:00
Thorsten_Z
Hallo Timo,
versuchs doch mal mit
if cells(25, 51) = "2" Then ...
Wenn die Zelle in einer anderen Tabelle ist, als in der Aktiven, dann
if sheets("DeineTabelle").cells(25, 51) = "2" Then...
Ich bin auch ein "Mischmascher". Daher, wenn es nicht an dieser Codezeile gelegen hat, kann ich leider nicht weiterhelfen. Lasse Frage daher gleich mal offen.
Rückmeldung wäre nett
Gruß
Thorsten

AW: VBA if then Problem
22.01.2008 20:39:38
Daniel
Hi
der Code kann nur funktionieren, wenn zu beginn ein Diagramm aktiv ist, dh. wenn du diesen Code so laufen lassen willst, musst du das Diagramm vorher anklicken.
Schalte beim nächsten Mal den Recorder früher an, dh. bevor das Objekt , das du bearbeiten willst, aktivert ist, so daß der Prozess des Aktiverens mit aufgezeichnet wird.
der Code sollte dann so aussehen:

ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range("A1:B2")


so wird es der Recorder aufzeichnen
im fertigen Code fasst man es aber im normalfall dann so zusammen:


ActiveSheet.ChartObjects("Diagramm 1").SetSourceData Source:=Sheets("Tabelle1").Range("A1:B2")


einfach weils übersichtlicher und im Programmlauf auch schneller ist
Gruß, Daniel.

Anzeige
AW: VBA if then Problem
22.01.2008 20:50:12
Timo
Danke, das wars.

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige