Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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
Inhaltsverzeichnis

Funktion die ermittelt ob Grafik in Zeile/Zelle

Funktion die ermittelt ob Grafik in Zeile/Zelle
Lutz
Hallo Excel-Profis,
ich bekomme eine Liste mit diversen Zeilen und in Spalte A gibt es Zeilen die eine Grafik enthalten (Grafik heißt immer BeX am Anfang)
Ich bräuchte eine Funktion die ermittelt, ob in der Zelle A der betreffenden Zeile eine Grafik steht (oder eben eine Grafi die Bex am Anfang heißt) oder nicht.
Ich brauche das, weil ich sonst Summen doppelt zählen würde, der Inhalt der Zelle A... ist in allen Zeilen gleich aber eine ist eine Summe und die andere/n eben nicht.
Wie kann man per Funktion ermitteln, ob in der Spalte A eine Grafik ist?
Vielen Dank für Eure Hilfe,
Viele Grüße Lutz
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 13:03:33
Rudi
Hallo,
wozu?
Wenn du Einzelwerte und Zwischensummen hast, summiere alles und teile durch 2.
Gruß
Rudi
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 14:14:16
Lutz
Hallo Rudi,
vielen Dank, leider habe ich das Problem dass dann nur die Gesamtsumme stimmt.
Es sieht so aus, dass
4711 10.000 (Zeile mit der Grafik = Summe 4711 und ff.) und
4711 1.000 (Zeile ohne Grafik = Einzelwert 4711) da ist
Viele Grüße Lutz
UDF
30.03.2011 14:44:18
Rudi
Hallo,
in ein Modul:
Function SummeOhneShapes(rngSum As Range) As Double
Dim oShp As Shape, dblShapes As Double
For Each oShp In rngSum.Parent.Shapes
If Not Intersect(rngSum, oShp.TopLeftCell) Is Nothing Then
If IsNumeric(oShp.TopLeftCell) Then
dblShapes = dblShapes + oShp.TopLeftCell
End If
End If
Next
SummeOhneShapes = Application.Sum(rngSum) - dblShapes
End Function

In der Tabelle z.B.: =SummeOhneShapes(A2:B20)
Gruß
Rudi
Anzeige
AW: UDF
30.03.2011 15:12:43
Lutz
Hallo Rudi,
vielen Dank, sieht eigentlich gut aus aber er wirft mir nur Wert an den Kopf.
Mir würde es reichen, wenn die Funktion 1 ausgibt, wenn ein Shape in Spalte A der jeweiligen Zeile ist und eine 0 wenn keines da ist.
Spalte A ist die Kostenstelle/Gruppe
Spalte B ist Text
Ab Spalte C Zahlen
Viele Grüße Lutz
AW: UDF
30.03.2011 15:44:39
Rudi
Hallo,
0 oder 1:
Function HasShape(rngCell As Range) As Integer
Dim oShp As Shape
For Each oShp In rngCell.Parent.Shapes
HasShape = -(rngCell(1).Address = oShp.TopLeftCell.Address)
If HasShape = 1 Then Exit Function
Next
End Function

Gruß
Rudi
Anzeige
AW: UDF
30.03.2011 15:55:28
Lutz
Hallo Rudi,
stark das geht - nur wenn er keinen Shape hat, bringt er nicht 0 sondern #Wert - bekommt man das noch weg?
Vielen Dank und viele Grüße Lutz
#Wert: kann ich nicht nachvollziehen owT
30.03.2011 16:19:58
Rudi
AW: #Wert: kann ich nicht nachvollziehen owT
30.03.2011 16:33:57
Lutz
Hallo Rudi,
ist auch nicht so wild, kann man mit Istfehler wegbekommen.
Aber zur Info mal das eine Beispieldatei:
https://www.herber.de/bbs/user/74215.xls
Vielen Dank in jedem Fall, viele Grüße und noch einen schönen Tag Lutz
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 13:40:49
Beverly
Hi Lutz,
auch wenn du bereits eine Lösung für dein eigentliches Problem hast, dennoch eine Antwort auf die Frage, wie man prüfen kann, ob eine Grafik auf einer bestimmten Zelle liegt: laufe in einer Schleife über alle Shapes und vergleiche, ob Shape.TopLeftCell.Address = Adresse der Zelle ist.


Anzeige
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 14:12:04
Lutz
Hallo Karin vielen Dank für die Info
wie kann ich das denn in einem Makro verarbeiten - ich fürchte mit meinen VBA Kenntnissen komme ich da nicht hin.
Vielen Dank Güße Lutz
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 14:23:51
Beverly
Hi Lutz,
Sub ShapeAdresse()
Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
If shaShape.TopLeftCell.Address = "$C$6" Then MsgBox "Grafik auf C6 vorhanden"
Next shaShape
End Sub



AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 14:35:06
Lutz
Hallo Beverly,
das sieht ja schon mal gut aus.
Ich habe das mal etwas angepasst:
Sub ShapeAdresse()
Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
'If shaShape.TopLeftCell.Address = "$C$6" Then MsgBox "Grafik auf C6 vorhanden"
If shaShape.TopLeftCell.Address = "$A$16" Then MsgBox "Grafik auf A16 vorhanden"
If shaShape.TopLeftCell.Address = "$A$17" Then MsgBox "Grafik auf A17 vorhanden"
If shaShape.TopLeftCell.Address = "$A$18" Then MsgBox "Grafik auf A18 vorhanden"
Next shaShape
End Sub
Er gibt mir dann auch richtig für 16 und 18 (ist so) die Meldung, dass eine Grafik da ist aus.
Aber am Ende kommt danach immer eine Meldung 1004 Anwendungs oder Objektorientierter Fehler wieder - an dieser Stelle:
If shaShape.TopLeftCell.Address = "$A$16" Then
Fehlt ihm da am Ende was?
Was müßte ich am Ende jeder Zeile ändern wenn er statt der msgbox den Text in die entsprechende Zeile aber Spalte R schreiben sollte?
Vielen Dank und viele Grüße Lutz
Anzeige
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 15:02:50
Beverly
Hi Lutz,
weshalb bei dir ein Fehler kommt, kann ich leider nicht nachvollziehen.
Wenn du nur wenige Zellen bzw. Grafiken überprüfen musst, kannst du den Eintrag in Spalte R nach diesem Prinzip machen:
If shaShape.TopLeftCell.Address = "$A$16" Then Range("R16") = "Grafik auf A16 vorhanden"

Sind es dagegen viele, wäre der Code so einfacher:
Sub ShapeAdresse()
Dim shaShape As Shape
For Each shaShape In ActiveSheet.Shapes
If shaShape.TopLeftCell.Column = 1 Then _
Range(shaShape.TopLeftCell.Address).Offset(0, 17) = "Grafik auf " & _
shaShape.TopLeftCell.Address(False, False) & " vorhanden"
Next shaShape
End Sub



Anzeige
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 16:06:41
Lutz
Hallo Beverly,
wunderbar, das klappt, komischerweise macht er alles durch und ganz am Ende jammert er dann aber bei
If shaShape.TopLeftCell.Column = 1 Then wieder den 1004 an - weiß der Geier warum. Vielleicht weil auch noch ein paar Shapes in anderen Spalten sind?
Viele Grüße und tausend Dank schon mal Lutz
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 19:12:58
Beverly
Hi Lutz,
ich wüsste keinen Grund, weshalb dieser Fehler auftreten sollte. Hast du den Code mal im Einzelschrittmodus ablaufen lassen? Vielleicht solltest du deine Arbeitsmappe mal hochladen.


Anzeige
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
30.03.2011 22:03:56
lutz
Hallo Beverly, bin leider nicht mehr im Büro.
Ich habe die Mappe weiter oben in dem Thread mit Rudi ganz am Ende hochgeladen - da ist auch das Conding von Dir drin.
Viele Grüße Lutz
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
31.03.2011 10:36:31
Beverly
Hi Lutz,
ich erhalte in der hochgeladenen Mappe keinen Fehler - der Code läuft korrekt durch und trägt jeweils in R1, R3, R4, R6 und R7 ein.


AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
31.03.2011 12:24:55
Lutz
Hallo Beverly,
dann muß ich noch mal sehen, was in der Original-Datei stört.
Ich habe oben und unten gelöscht zumal da auch Unternehmenszahlen drin standen...
Vielen lieben Dank für Deine Hilfe und noch einen schönen Tag.
Viele Grüße Lutz
Anzeige
AW: Funktion die ermittelt ob Grafik in Zeile/Zelle
31.03.2011 14:19:20
Beverly
Hi Lutz,
ich nehme an, du hast die Zeilen gelöscht und nicht nur die Zellinhalte? Vielleicht solltest du mal nur die Inhalte löschen und die Mappe dann noch einmal hochladen. Die Inhalte am besten auch per Code mit ClearContents und nicht von Hand löschen.


304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige