VBA bei eintrag in eine Tabelle über prüfen ob der Eintrag in vorhanden ist
#11
naja, mein Ziel ist es die Komminikationsobjekte KO die cih für die ETS (KNX-Parametrierung) benötige automatisch erzeugen zu lassen.
Das werden mehre Hundert die alle per Hand eingetragen werden müssten.

Mit der Excel sollte es mir gelingen, für jedes Gerät das ich eingebe die nötigen KOs erzeugen zu lassen.

Anschließend werden alle KOs in eine csv geschrieben und können dann in die ETS eingelesen werden.

Und der andere Grund, ich sehe es als Gehirnjogging. Ich bin 50 und versuche Lösungen zu finden um mein Gehirn fitt zu halten.
Außerdem möchte ich mein Haus automatiesieren und mach dann alles händisch... wäre irgendwie komisch Smile

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim iZeile&: iZeile = Target.Cells.Row
Dim laenge1 As Long
Dim Gewerk As String
Dim Kategory As String
Dim GA As String
Dim tabHG As Range
Dim tabMG As Range
Dim tabUG As Range
Dim i&, j As Range
Dim UG As String

   
If Target = "" Then Exit Sub
If Application.WorksheetFunction.CountIf(Columns(2), Target) > 1 Then
    MsgBox "Wert schon vorhanden"
    Application.Undo
    Exit Sub
ElseIf Application.WorksheetFunction.CountIf(Worksheets("Raumbuch").Columns(15), Target) = 0 Then
    MsgBox "Wert ungültig"
    Application.Undo
    Exit Sub
End If

'auslesen Gewerk
Gewerk = Cells(iZeile, 6)
MsgBox "Wert gültig" & iZeile & Gewerk

'auslesen aller zum Gewerk gehörenden HG
For Each tabHG In Worksheets(5).Range(Gewerk)
  If tabHG <> "" Then 'leere Zellen ausschließen
    Kategorie = Cells(iZeile, 7)
    'MsgBox "HG: " & tabHG & " " & Kategorie
    'auslesen aller MG zu HG
    For Each tabMG In Worksheets(5).Range(tabHG)
        If tabMG <> "" Then 'leere Zellen ausschließen
            'MsgBox "MG: " & tabMG
            'auslesen der Untergruppen
            For Each tabUG In Worksheets(5).Range(Kategorie)
                If tabMG = Tabelle8.Cells(tabUG.Cells.Row, 2) And tabUG.Value2 = True Then 'nur KO erzeugen wenn UG auf "WAHR"
                    i = tabUG.Cells.Row
                    GA = Tabelle8.Cells(i, 3)
                    MsgBox "GA: ..." & GA
                End If
            Next tabUG
        End If
    Next tabMG
  End If
Next tabHG


End Sub

ich musste noch enige sachen in den tabellen ändern, da es Probleme mit Leerzeichen und Sonderzeichen gab Aber so werden mir die Kürzel für die Kos schon einmal angezeigt...
Antworten Top
#12
Hallöchen,

mein Code in Thread-Tabelle-automatisch-befuellen gefällt Dir nicht?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
Ich habe jetzt erst einmal alles zum laufen gebracht.
Das ist natürlich kein sauberer Code.

Im nächsten Schritt schaue ich mir dann Verbesserungen an.

Irgendwie läuft das bei mir nicht sauber.. falsche Eingaben bewirken in einen Fehler
Antworten Top


Gehe zu:


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