Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zellen markieren und Wert ausgeben

Betrifft: Zellen markieren und Wert ausgeben von: Sparrow
Geschrieben am: 04.11.2014 17:28:51

Hallo!
Zunächst ist es von Vorteil wenn nebenbei die Beispieldatei geöffnet ist - in dieser befinden sich Balken welche Zeitabhängig Beispielwerte über eine gewisse Zeit angeben. Ich suche nun eine VBA-Lösung welche mir ermöglicht, dass ich - wie in der Beispieldatei - verschiedene Teile von mehreren Balken mit der Maus markiere und mir dementsprechend die Summe unten rechts in Excel ausgegeben wird. In der Datei wäre das also 2800*1/3 + 3528*1/3 + 784*1/3 = 757 -- Dieser Wert wird unten rechts angezeigt wo auch die normale Summe gebildet wird.
Ist es möglich dies über VBA zu realisieren?
Vielen vielen Dank im Voraus!

https://www.herber.de/bbs/user/93547.xlsx

Beste Grüße
Sascha

  

Betrifft: AW: Zellen markieren und Wert ausgeben von: MCO
Geschrieben am: 05.11.2014 13:29:09

Hallo!

Ich hab nicht verstanden, was von welchem Balken gerechnet und wohin geschrieben werden soll.
Sicher ist aber, das ich einen Lösungsansatz habe, der dir hilfreich sein wird.

Kopiere das in den Code zum Arbeitsblatt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
            
summe = Round(WorksheetFunction.Sum(Range(Target.Address)) / 3, 2)
If summe > 0 Then
    MsgBox "Schreib mich hin, wohin du willst: " & Chr(13) & Chr(13) & summe
End If

End Sub
Ich habe mir dabei erlaubt, den Rechenschritt zusammenzufassen...
Gruß, MCO


  

Betrifft: AW: Zellen markieren und Wert ausgeben von: Sparrow
Geschrieben am: 06.11.2014 09:38:32

Hey,
das hilft mir schon sehr weiter - allerdings gibt es da noch zwei Einschränkungen. Zunächst wird nicht immer nur 1/3 des Balkens markiert - geht der Balken über 4 Monate und wird nur ein Feld markiert haben wir bspw. /4 .
Zudem wird nur ein Wert ausgegeben wenn ich in dem Balken ein Feld mit dem Wert auswähle, ein leeres Feld innerhalb des gleichen Balkens bleibt inaktiv.
Ansonsten finde ich die Lösung schon sehr gut! Falls du noch eine Idee hast würde ich mich freuen.
Beste Grüße
Sascha


  

Betrifft: AW: Zellen markieren und Wert ausgeben von: MCO
Geschrieben am: 07.11.2014 14:41:19

Hallo!
Hat leider etwas Zeit in Anspruch genommen :-)
Probier das mal aus. Hab's im Code kommentiert.

Gruß, MCO

Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Resume Next
wert = 0

For Each cl In Selection 'jede Zelle durchgehen
    sp_l = 0
    'Kante links suchen
    Do Until cl.Offset(0, sp_l).Borders(1).ColorIndex = -4105 Or cl.Offset(0, sp_l - 1).Borders( _
2).ColorIndex = -4105
        sp_l = sp_l - 1
        If cl.Column + sp_l <= 1 Then sp_l = sp_l + 1: Exit Do
    Loop
    'Debug.Print "links: ", cl.Offset(0, sp_l).Address(0, 0)
    
    sp_r = 0
    'Kante rechts suchen
    Do Until cl.Offset(0, sp_r).Borders(2).ColorIndex = -4105
        sp_r = sp_r + 1
        If cl.Column + sp_r = UsedRange.Columns.Count Then Exit Do
    Loop
    
    'Versatz nach links mit Versatz nach rechts + 1 ergibt die Anzahl der Spalten
    spalten = Abs(sp_l) + sp_r + 1
    
    'Wenn in der entsprechenden Zelle ein Wert steht, addieren, rechen mit Spalten
    If IsNumeric(wert) Then wert = wert + cl.Value / spalten
Next cl

'Wenn Summe größer 0 Meldung ausgeben, alternativ zelle -> z.B. Range("G22")
If wert > 0 Then MsgBox "Schreib mich hin, wohin du willst: " & Chr(13) & Chr(13) & Round(wert,  _
2)

End Sub



  

Betrifft: AW: Zellen markieren und Wert ausgeben von: Sparrow
Geschrieben am: 10.11.2014 10:07:15

Hey,
klappt leider nicht - es wird nach wie vor nur gezählt wenn ich direkt in die Zelle in der sich die Zahl befindet rein klicke, nehme ich eine leere Zelle innerhalb des Balkens wird nichts ausgegeben. Trotzdem schon mal vielen Dank für deine Bemühungen! Vielleicht hast du ja noch eine Idee?
Vg
Sascha


 

Beiträge aus den Excel-Beispielen zum Thema "Zellen markieren und Wert ausgeben"