Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1460to1464
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
Kommentar per VBA in eine Zelle schreiben
27.11.2015 22:09:11
Lukas
Hallo zusammen,
ich habe eine Excel-Mappe die aus mehreren Tabellenreitern besteht. Ich habe euch mal eine vereinfachte Version angehängt.
Ein Tabellenreiter "Übersicht" fasst quasi den Umsatz nach Segmenten für die einzelnen Quartale zusammen.
in den anderen Tabellenreitern, die jeweils den Namen des Segmentes haben, enthalten eine örtliche Angabe (Bundesländer) des Umsatzes. Dort steht einfach nur drin, wo der Umsatz erfolgte.
Ich würde nun gerne in jeder Zelle des Reiters "Übersicht", wo eine Zahl drin steht, ein Kommentar eingefügt bekommen, in dem drin steht wie sich der Betrag auf die Bundesländer aufteilt.
Händisch würde das enorm fiel Zeit in Anspruch nehmen. Leider kenne ich mich mit VBA nur sehr schlecht aus. Kann mir da jemand helfen, wie ich das mit VBA quasi automatisch erledigen kann?
Schön wäre, wenn der Umsatz eines Bundeslandes null beträgt, diese Angabe im Kommentar nicht erscheint und wenn unter "Baden-Würtemberg" ein oder zwei weitere Bundesländer hinzugefügt werden, diese dann auch im Kommentar erscheinen.
Beispiel:
im Tabllenreiter Übersicht sollte in Zelle D3 folgender Kommentar erscheinen:
- Berlin: 121,91 €
- Nordrhein-Westfalen 672,15 €
- Baden-Würtemberg 595,75 €
Vielen Dank schon mal, für jede Hilfe
https://www.herber.de/bbs/user/101857.xlsx

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kommentar per VBA in eine Zelle schreiben
27.11.2015 22:19:30
Sepp
Hallo Lukas,
und wie kommen deine Daten in die Tabelle Zusammenfassung? Per VBA? Dann solltest du den Code zeigen.
Gruß Sepp

AW: Kommentar per VBA in eine Zelle schreiben
27.11.2015 22:39:29
Lukas
Hallo Sepp,
In welche Tabelle "Zusammenfassung"? Meinst du "Übersicht"? Die werden in er Original-Datei über ein Add-In per EPM aus einer Datenbank eingelesen. Da muss man nur die Dimensionen (Konto und Zeit) in der Zeile bzw. Spalte eingeben und dann findet Excel die Zahlenwerte automatisch.
Gruß

Anzeige
AW: Kommentar per VBA in eine Zelle schreiben
27.11.2015 23:20:51
Sepp
Hallo Lukas,
für deine Beispieldatei.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Kommentare()
Dim rng As Range, rngI As Range
Dim objSh As Worksheet
Dim varRet As Variant
Dim lngRow As Long, lngC As Long
Dim strComment As String

With Sheets("Übersicht")
  Set rng = .Range("B3:B" & Application.Max(3, .Cells(.Rows.Count, 2).End(xlUp).Row))
  .Cells.ClearComments
  For Each rngI In rng
    If SheetExist(rngI.Text) Then
      Set objSh = Sheets(rngI.Text)
      For lngC = 4 To Application.Max(4, .Cells(2, .Columns.Count).End(xlToLeft).Column)
        varRet = Application.Match(.Cells(2, lngC), objSh.Rows(2), 0)
        If IsNumeric(varRet) Then
          strComment = ""
          For lngRow = 5 To Application.Max(5, objSh.Cells(.Rows.Count, 4).End(xlUp).Row)
            If objSh.Cells(lngRow, 4) <> "" Then
              If objSh.Cells(lngRow, varRet) <> "" Then
                If IsNumeric(objSh.Cells(lngRow, varRet)) Then
                  strComment = strComment & objSh.Cells(lngRow, 4) & String(30 - _
                    Len(objSh.Cells(lngRow, 4)) - Len(Format(objSh.Cells(lngRow, varRet), "0.00")), _
                    " ") & Format(objSh.Cells(lngRow, varRet), "0.00") & vbCrLf
                End If
              End If
            End If
          Next
          strComment = strComment & "Gesamt" & String(24 - Len(Format(objSh.Cells(3, varRet), _
            "0.00")), " ") & Format(objSh.Cells(3, varRet), "0.00")
          .Cells(rngI.Row, lngC).AddComment strComment
          .Cells(rngI.Row, lngC).Comment.Shape.TextFrame.Characters.Font.Size = 10
          .Cells(rngI.Row, lngC).Comment.Shape.TextFrame.Characters.Font.Name = _
            "Lucida Sans Typewriter"
          .Cells(rngI.Row, lngC).Comment.Shape.TextFrame.AutoSize = True
        End If
      Next
    End If
  Next
End With

Set rng = Nothing
Set objSh = Nothing
End Sub

Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook) As Boolean
Dim wks As Object
On Error GoTo ERRORHANDLER
If Wb Is Nothing Then Set Wb = ThisWorkbook
For Each wks In Wb.Sheets
  If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
Next
ERRORHANDLER:
SheetExist = False
End Function

Gruß Sepp

Anzeige
AW: Kommentar per VBA in eine Zelle schreiben
28.11.2015 08:49:36
Lukas
Guten Morgen Sepp,
boah, super! Vielen Dank!
Ich hätte nun aber doch noch eine Bitte...könntest du mir den Code etwas erläutern? Habe nämlich so gut wie keine VBA-Kenntnisse, aber ich würde diese doch gerne erweitern.
Gruß
Lukas

AW: Kommentar per VBA in eine Zelle schreiben
28.11.2015 09:50:59
Sepp
Hallo Lukas,
anbei deine Datei. Im Code findest du einige Kommentare, ich habe den Code noch ein wenig erweitert, um die Kommentare etwas 'hübscher' darzustellen.
https://www.herber.de/bbs/user/101860.xlsm
Gruß Sepp

Anzeige
AW: Kommentar per VBA in eine Zelle schreiben
28.11.2015 10:41:56
Lukas
Hallo Sepp,
vielen vielen Dank nochmal!
Gruß
Lukas

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige