Office: (Office 2019) Eingabemaske mit Bearbeitung an bestimmter Stelle

Helfe beim Thema Eingabemaske mit Bearbeitung an bestimmter Stelle in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, Leider bin ich noch ziemlich neu im VBA Bereich und ich sitze gerade an einer Eingabemaske für meine Datenbank. Ich glaube es ist etwas... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Huert, 16. April 2022.

  1. Huert Neuer User

    Eingabemaske mit Bearbeitung an bestimmter Stelle


    Hallo,
    Leider bin ich noch ziemlich neu im VBA Bereich und ich sitze gerade an einer Eingabemaske für meine Datenbank. Ich glaube es ist etwas ambitionierter, aber selbst Anreize
    Dabei ist der Grobe Plan:
    D13: Hier wird der "Key" eingegeben(nachdem in der bestehenden Tabelle "Gesamtdaten" gesucht wird) --> Dieser bestimmt dann die Zeile in die Werte Eingegeben werden.
    Da entsteht mein Haupt Problem, wie finde ich die richtige Zeile in der ich die Daten eintragen möchte.
    Danach möchte ich das der Wert den ich in H17 eintragen habe in der Tabelle "Gesamtdaten" in der Spalte Q und der ermittelten Zeile eingefügt wird
    Das gleiche für den Wert aus H20 in R und der ermittelnden Zeile

    Tabellenblatt 1 heißt dabei Dashboard
     
  2. OilMax User
    Hallo,
    das kannst du mit der Methode .Find machen. Diese ist eine Range und kann die Zeilennummer mit .Row ausgeben.

    Gruß Uwe
     
    OilMax, 16. April 2022
    #2
  3. Huert Neuer User
    Vielen Dank für die Antwort.
    Habe leider aber immer noch das folgende Problem, das er mir sagt die Typen währen unverträglich
    Das ist dann hoffentlich das letzte Problem
    Code:

    Dim Zeile As Range
    Set Zeile = Range("A:A").Find(What:=Range("D13").Value, LookIn:=xlValues, lookat:=xlWhole).Row


    With tb_Eingabeformular

    'Datenbank befüllen
    tbl.DataBodyRange(Zeile, 17).Value = .Range("H17").Vlaue
     
  4. Exl121150 Erfahrener User

    Eingabemaske mit Bearbeitung an bestimmter Stelle

    Hallo,

    du hast die Variable "Zeile" als Range deklariert. Mit der Row-Eigenschaft von "Find" weist du aber der Variable "Zeile" eine Long-Integer-Zahl (Row ist hier die Zeilennummer und nicht ein Zeilenbereich) zu. Der Code muss richtigerweise lauten:

    Dim Zeile As Long
    Let Zeile = Range("A:A").Find(What:=Range("D13").Value, LookIn:=xlValues, lookat:=xlWhole).Row


    wobei man das "Let" auch weglassen kann (normalerweise) - auf alle Fälle darf dort keinesfalls "Set" stehen.
     
    Exl121150, 20. April 2022
    #4
  5. OilMax User
    Hallo miteinander,
    @ Anton: Kann man machen, aber wenn kein Wert gefunden wird, läuft es in einen Fehler.
    @ Hubert: Besser so:
    Code:
        Dim Zeile As Range, i As Long
        Set Zeile = Range("A:A").Find(What:=Range("D13").Value, LookIn:=xlValues, lookat:=xlWhole)
        
        If Not Zeile Is Nothing Then
            i = Zeile.Row
        End If
        ' und dann verwendest du in deinem weiteren Code i als Zeilennummer
    Gruß Uwe
     
    OilMax, 20. April 2022
    #5
  6. Huert Neuer User
    Danke für die Antwort, jetzt bleibt es leider so das er das in die Überschrift einfügt und nicht in die gewünschte Zelle
    Tut mir leid für die vielen Umstände, arbeite michh aber erst so richtig in das Thema rein und bin noch ganz am Anfang. Ich kopiere jetzt hier mal meinen gesamten Code hin:

    Code:
    Option Explicit


    Sub Daten_change()
    Dim tbl As ListObject
    Set tbl = tb_Datenbank.ListObjects(1)

    Dim Zeile As Range, i As Long
    Set Zeile = Range("A:A").Find(What:=Range("D13").Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not Zeile Is Nothing Then
    i = Zeile.Row
    End If



    With tb_Eingabeformular
    tbl.DataBodyRange(i, 17).Value = .Range("H17").Value
    tbl.DataBodyRange(i, 18).Value = .Range("H20").Value
    tbl.DataBodyRange(i, 22).Value = .Range("H23").Value
    tbl.DataBodyRange(i, 24).Value = .Range("H26").Value
    tbl.DataBodyRange(i, 30).Value = .Range("H29").Value
    tbl.DataBodyRange(i, 21).Value = .Range("P17").Value
    tbl.DataBodyRange(i, 20).Value = .Range("P20").Value
    tbl.DataBodyRange(i, 23).Value = .Range("P23").Value
    tbl.DataBodyRange(i, 25).Value = .Range("P26").Value
    tbl.DataBodyRange(i, 27).Value = .Range("P29").Value


    'Spalten leeren
    .Range("H17").ClearContents
    .Range("H20").ClearContents
    .Range("H23").ClearContents
    .Range("H26").ClearContents
    .Range("H29").ClearContents

    .Range("P17").ClearContents
    .Range("P20").ClearContents
    .Range("P23").ClearContents
    .Range("P26").ClearContents
    .Range("P29").ClearContents

    End With

    End Sub
     
  7. OilMax User
    Hallo,

    Lade bitte mal die Datei anonymisiert mit ein paar verwertbaren Daten hoch. Du hast ja eine/mehrere dynamische Tabelle(n) drin (ListObject). Da kann man das anders/besser angehen.

    Gruß Uwe
     
    OilMax, 21. April 2022
    #7
  8. Huert Neuer User

    Eingabemaske mit Bearbeitung an bestimmter Stelle

    Ich danke so viel für die Mühen
     
  9. Exl121150 Erfahrener User
    Hallo,

    ich habe dein Makro in der beiliegenden Datei modifiziert wie folgt:
    Code:
    Option Explicit
    
    Sub Daten_change()
       Dim tbZeile As Range
       Dim Zelle As Range, i As Long
       Dim D13val As Variant
     
       With tb_Datenbank.ListObjects(1)
     
          D13val = tb_Eingabeformular.Range("D13").Value
          Set Zelle = .ListColumns("Datums_ID").DataBodyRange.Find(What:=D13val, LookIn:=xlValues, lookat:=xlWhole)
          If Zelle Is Nothing Then
              MsgBox Prompt:="'" & D13val & "' wurde in 'Gesamtdaten!$A:$A' nicht gefunden.", _
                     Title:="Erfolglose Suche - Abbruch"
              Exit Sub
          Else
              i = .HeaderRowRange.Row                      'Arbeitsblatt-ZeilenNr. der ListObject-Kopfzeile
              Set tbZeile = .ListRows(Zelle.Row - i).Range 'Zeilenbereich der gesuchten ListObject-Zeile
          End If
     
       End With
     
       With tb_Eingabeformular
     
           tbZeile(17).Value = .Range("H17").Value
           tbZeile(18).Value = .Range("H20").Value
           tbZeile(22).Value = .Range("H23").Value
           tbZeile(24).Value = .Range("H26").Value
           tbZeile(30).Value = .Range("H29").Value
       
           tbZeile(21).Value = .Range("P17").Value
           tbZeile(20).Value = .Range("P20").Value
           tbZeile(23).Value = .Range("P23").Value
           tbZeile(25).Value = .Range("P26").Value
           tbZeile(27).Value = .Range("P29").Value
       
           'Spalten leeren
           .Range("H17").ClearContents
           .Range("H20").ClearContents
           .Range("H23").ClearContents
           .Range("H26").ClearContents
           .Range("H29").ClearContents
       
           .Range("P17").ClearContents
           .Range("P20").ClearContents
           .Range("P23").ClearContents
           .Range("P26").ClearContents
           .Range("P29").ClearContents
       
       End With
     
    End Sub
    
     
    Zuletzt bearbeitet: 22. April 2022
    Exl121150, 22. April 2022
    #9
  10. Huert Neuer User
    Vielen vielen Dank!
     
Thema:

Eingabemaske mit Bearbeitung an bestimmter Stelle

Die Seite wird geladen...
  1. Eingabemaske mit Bearbeitung an bestimmter Stelle - Similar Threads - Eingabemaske Bearbeitung bestimmter

  2. Eintragung in mehrere Tabellen

    in Microsoft Excel Hilfe
    Eintragung in mehrere Tabellen: Hallo an alle. Ich habe ein kleines Problem. Ich habe schon ein Makro erstellt für eine Eingabemaske die per Knopfdruck erscheint. Diese hab ich in verschiedenen Tabellenblättern integriert für...
  3. Vba-Eingabemaske- In Spalte suchen und in Texboxen Zeile ausgeben

    in Microsoft Excel Hilfe
    Vba-Eingabemaske- In Spalte suchen und in Texboxen Zeile ausgeben: Hey liebes Forum, ich beschäftige mich mit einer "Suchdatenbank" via VBA, die folgende Funktionen haben soll: Eine Datenbank umfasst c.a. 4000 Zeilen, in Spalte A befindet sich der Firmenname (...
  4. Wie erstelle ich eine Eingabemaske für Vorlagen?

    in Microsoft Word Hilfe
    Wie erstelle ich eine Eingabemaske für Vorlagen?: Hallo zusammen, ich habe mal gesehen, daß man beim Öffnen einer Vorlage zuerst ein Eingabefeld angezeigt bekommt, in welches man ein paar Stammdaten eingeben kann, die dann automatisch in der...
  5. Userform Eingabemaske

    in Microsoft Excel Hilfe
    Userform Eingabemaske: Hallo ich versuche mich gerade an der UserForm als eine EingabeMaske für ein Tabellenblatt, welches als Datenbank für den Rest der Exceldatei dient. Ich würde es gerne selber versuchen, von daher...
  6. Eingabemaske für mehrere Arbeitsblätter erstellen

    in Microsoft Excel Hilfe
    Eingabemaske für mehrere Arbeitsblätter erstellen: Hallo, ich möchte eine Eingabemaske für Datensätze (Text) zur Verteilung auf verschiedene Arbeitsblätter in einer Mappe erstellen. Es sollen auch Felder zum Abhaken dabei sein und alle Blätter...
  7. Werte aus Arbeitsblatt auslesen

    in Microsoft Excel Hilfe
    Werte aus Arbeitsblatt auslesen: Guten Tag, alles Mögliche schon versucht - leider ohne zufriedenstellendes Resultat. Ein passendes Thema habe ich auch nicht gefunden. Wüsste jetzt aber auch nicht, nach was ich genau suchen...
  8. Eingabemaske über Button aufrufen

    in Microsoft Excel Hilfe
    Eingabemaske über Button aufrufen: Hallo Experten, Ich möchte über einen Button eine Eingabemaske aufrufen. Das ganze soll eine Art Datenbank darstellen und mit einer Eingabemaske sollen neue Kontakte hinzugefügt werden. Als...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden