Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten in Userform wieder anzeigen & bearbeiten
#1
Hallo liebe Excel Spezialisten,

ich möchte gerne, wie in der angehängten Tabelle sichtbar, für jeden Eintrag eines Datensatzes eine MessageBox (A3) erstellen. In dieser MessageBox soll dann der Names des Projektes bzw. der Projekte erscheinen, wenn dort ein x hinterlegt ist (siehe AJ bis AL). Wie genau das ganze (wahrscheinlich mit einer Wennfunktion) erstellt wird, habe ich allerdings noch nicht ganz durchschaut.

Würde mich hier sehr über jegliche Tipps freuen :)

Vielen Dank und beste Grüße,
David

PS: Ich habe für eine anderes Probelm mit der selben Tabelle bereits einen Thread (http://www.clever-excel-forum.de/thread-5600.html)


Angehängte Dateien
.xlsm   Test fürs Forum.xlsm (Größe: 57,42 KB / Downloads: 15)
Antworten Top
#2
Hallo,

vielleicht so? (der Code gehört in das Klassenmodul der Tabelle)

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   Dim lngC As Long
   Dim strText As String
  
   If WorksheetFunction.CountIf(Cells(Target.Row, 36).Resize(, 3), "x") > 0 Then
      For lngC = 1 To 35
         strText = strText & Cells(2, lngC) & ": " & Cells(Target.Row, lngC) & vbCr
      Next lngC
   End If
   MsgBox strText
   Cancel = True
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • DavidHans
Antworten Top
#3
Klappt!!

Vielen, vielen herzlichen Dank! :)
Antworten Top
#4
Hi,

die Lösung für die Msgbox hat Stefan ja schon gepostet.

Ich habe Dir mal Deine Mammut-Makros zusammengefasst und eine Formatierung für Zahlen und Telefonnummern eingebaut (die zwei Teile für die beiden Blätter könnten auch noch zusammengefasst werden):
Option Explicit

Private Sub CommandButton1_Click()
  'Variable deklarieren
  Dim erste_freie_Zeile As Long
  Dim i As Integer
  If TextBox1 = "" Then Exit Sub
 
  'erste freie Zeile in Blatt "Master" ermitteln
  'und in Variable "erste_freie_Zeile" schreiben
  erste_freie_Zeile = Sheets("Master").Cells(Rows.Count, 1).End(xlUp).Row + 1     'Erste freie Zeile der Spalte A (1)
  'In Blatt "Master"
  With Sheets("Master")
     'alle Textboxen durchgehen
     For i = 1 To 35
        'Entscheidung, welches Format die Werte haben
        Select Case i
           'Spaltennummer
           '         Case Is = 2, 18, 20, 22, 23               'Datumfelder
           '            If IsDate(Me.Controls("TextBox" & i)) Then
           '               Cells(erste_freie_Zeile, i).Value = CDate(Me.Controls("TextBox" & i))
           '            Else
           '               Cells(erste_freie_Zeile, i) = ""
           '            End If
           'Spaltennummer
        Case Is = 1, 3, 4                   'Zahlenfelder
           If IsNumeric(Me.Controls("TextBox" & i)) Then
              .Cells(erste_freie_Zeile, i).Value = CLng(Me.Controls("TextBox" & i))
           Else
              .Cells(erste_freie_Zeile, i) = ""
           End If
           'Spaltennummer
        Case Is = 18, 27                          'Telefonnummer
           .Cells(erste_freie_Zeile, i).Value = CStr(Me.Controls("TextBox" & i))
        Case Else
           .Cells(erste_freie_Zeile, i).Value = Me.Controls("TextBox" & i)
        End Select
     Next i
  End With
 
  'erste freie Zeile in Blatt "Projekt X" ermitteln
  'und in Variable "erste_freie_Zeile" schreiben
  erste_freie_Zeile = Sheets("Projekt X").Cells(Rows.Count, 1).End(xlUp).Row + 1     'Erste freie Zeile der Spalte A (1)
  'In Blatt "Projekt X"
  With Sheets("Projekt X")
     'alle Textboxen durchgehen
     For i = 1 To 35
        'Entscheidung, welches Format die Werte haben
        Select Case i
           'Spaltennummer
           '         Case Is = 2, 18, 20, 22, 23               'Datumfelder
           '            If IsDate(Me.Controls("TextBox" & i)) Then
           '               Cells(erste_freie_Zeile, i).Value = CDate(Me.Controls("TextBox" & i))
           '            Else
           '               Cells(erste_freie_Zeile, i) = ""
           '            End If
           'Spaltennummer
        Case Is = 1, 3, 4                   'Zahlenfelder
           If IsNumeric(Me.Controls("TextBox" & i)) Then
              .Cells(erste_freie_Zeile, i).Value = CLng(Me.Controls("TextBox" & i))
           Else
              .Cells(erste_freie_Zeile, i) = ""
           End If
           'Spaltennummer
        Case Is = 18, 27                          'Telefonnummer
           .Cells(erste_freie_Zeile, i).Value = CStr(Me.Controls("TextBox" & i))
        Case Else
           .Cells(erste_freie_Zeile, i).Value = Me.Controls("TextBox" & i)
        End Select
        Me.Controls("TextBox" & i) = ""
     Next i
  End With
 
  'Sortierung nach Spalte A
  '  Range("A3:AT" & xZeile).Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlYes, _
      '      OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

  Unload Me
 
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste