Collapse column

Autor Thema: VBA Fehlermeldung und ich weiss nicht wieso  (Gelesen 5455 mal)

Offline UliD22

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
VBA Fehlermeldung und ich weiss nicht wieso
« am: April 29, 2015, 11:55:39 Vormittag »
 ;D Meine Frau macht sich zum ersten Mal inrem Leben selbständig.
Alles Geld ist inzwischen aufgebraucht.  :o  Ich habe mich einmal damit beschäftigt,
eine Datenbank in Excel zu programmieren. Leider  :-\ bin ich als VBA Neuling  8) jetzt am Ende angelangt.  ::)

Wenn sich jemand mal meiner annehmen würde, dann schickte ich mal meine Ergebnisse als Datei ...  :-[


Ach ja - in Office 2013 erstellt - funzt nicht auf einem Mac mit Office 2011 - das ist auch sch... nicht schön.  :'(

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #1 am: April 29, 2015, 13:22:26 Nachmittag »
Hallo UliD22,

willkommen im Forum. Besser fände ich es, wenn Du vielleicht die Fehlermeldung beschreiben könntest,
bzw. was nicht funktioniert. Vielleicht auch mit Beispieldatei (anonymisiert natürlich). Denn dann hätten
andere User im Forum auch was davon, was bei "Zusenden der Datei" nicht der Fall wäre.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline UliD22

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #2 am: April 29, 2015, 14:07:34 Nachmittag »
OK, ich versuche es:

Ich habe eine Excel-Tabelle mit 29 Spalten.
Diese will ich übersichtlich (Bild 1) darstellen lassen.

Die gelben Felder werden in der Tabelle per sverweis (aus einem separaten Tabellenblatt) ausgelesen.
(Beispiel: PLZ trage ich ein - mittels sverweis wird dann die Stadt ermittelt.  BLZ und KtoNr = Bank/IBAN und BIC)

Wie hier



ersichtlich habe ich eine UserForm gebaut, die eine Tabelle abfragt und mir alle Daten anzeigt, die ich haben will (Quellcode füge ich später ein).

Komme ich an eine Stelle, wo ich keine echten Bankdaten habe, habe ich und nehme ich Platzhalter
 


bekomme ich die Fehlermeldung



Debuggen bringt mich auf dieses Ergebnis


Außerdem funktionieren die Schalter unten nicht für alle Zellen.
Neuer Datensatz: trägt nur in Spalte 1 ein

Ich hoffe, das war jetzt nicht zu konfus


Zitat
Option Explicit
Option Compare Text


'Neuer Eintrag Schaltfläche Ereignisroutine
Private Sub CommandButton1_Click()
    Dim lZeile As Long
      'Wenn der Benutzer einen neuen Eintrag erzeugen möchte,
      'erstellen wir einen neuen Eintrag in der ListBox und markieren
      'diesen, damit der Benutzer die Daten eintragen kann
     
      lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die überschriftrn
      'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
      Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""
          lZeile = lZeile + 1 'Nächste Zeile bearbeiten
      Loop
     
      'Nach Durchlauf dieser Schleife steht lZeile in der ersten leeren Zeile von Tabelle1
      'Neuen Eintrag in die Tabelle1 schreiben, Spalte ID muss gefüllt sein, damit
      'unsere Routinen die Zeile wiederfinden!
      Tabelle1.Cells(lZeile, 1) = CStr("Neuer Eintrag Zeile " & lZeile)
     
      'Und neuen Eintrag in die UserForm eintragen
      ListBox1.AddItem CStr("Neuer Eintrag Zeile " & lZeile)
     
      'Den neuen Eintrag markieren mit Hilfe des ListIndexes
      ListBox1.ListIndex = ListBox1.ListCount - 1
      'Durch das Click Ereignis der ListBox werden die Daten automatisch geladen
     
End Sub

'Löschen Schaltfläche Ereignisroutine
Private Sub CommandButton2_Click()
    Dim lZeile As Long
   
      'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
      If ListBox1.ListIndex = -1 Then Exit Sub
   
      'Zum Löschen benötigen wir die Zeilennummer des ausgewählten Datensatzes
      lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
      'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
      Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""
     
          'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
          If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
             
              'Eintrag gefunden, die ganze Zeile wird nun gelöscht
              Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete
             
              'Die ListBox muss nun neu geladen werden!
              Call UserForm_Initialize
              If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
             
              Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
             
          End If
     
          lZeile = lZeile + 1 'Nächste Zeile bearbeiten
      Loop
     
End Sub

'Speichern Schaltfläche Ereignisroutine
Private Sub CommandButton3_Click()
    Dim lZeile As Long

    With UserForm1

      'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
      If .ListBox1.ListIndex = -1 Then Exit Sub
     
      'Wir müssen prüfen, ob die ID Spalte auch gefüllt ist!!
      If Trim(CStr(TextBox1.Text)) = "" Then
          'Meldung ausgeben
          MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
          'Abbrechen der Speicherroutine
          Exit Sub
      End If
      'Ausbauoption: Prüfen, ob die ID in Tabelle1 Spalte 1 schon vorhanden ist!
     
      'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
      lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
      'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
      Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""
     
          'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
          If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
             
              'Eintrag gefunden, TextBoxen in die Zellen schreiben
             
              Cells(lZeile, 2) = .txt_Anrede.Text
              Tabelle1.Cells(lZeile, 3).Value = txt_Nachname.Text
              Tabelle1.Cells(lZeile, 4).Value = txt_Vorname.Text
              Tabelle1.Cells(lZeile, 6).Value = txt_HausNr.Text
              Tabelle1.Cells(lZeile, 7).Value = txt_PLZ.Text
              Tabelle1.Cells(lZeile, 8).Value = txt_Ort.Text
              Tabelle1.Cells(lZeile, 9).Value = txt_Email.Text
              Tabelle1.Cells(lZeile, 10).Value = txt_GebDat.Text
              Tabelle1.Cells(lZeile, 11).Value = txt_PersoNr.Text
              Tabelle1.Cells(lZeile, 12).Value = txt_Mobil.Text
              Tabelle1.Cells(lZeile, 13).Value = txt_Festnetz.Text
              Tabelle1.Cells(lZeile, 14).Value = txt_VertragNr.Text
              Tabelle1.Cells(lZeile, 15).Value = txt_VArt_kurz.Text
              Tabelle1.Cells(lZeile, 17).Value = txt_Preis.Text
              Tabelle1.Cells(lZeile, 18).Value = txt_Vertrag_Bez.Text
              Tabelle1.Cells(lZeile, 19).Value = txt_Laufzeit_Beginn.Text
              Tabelle1.Cells(lZeile, 20).Value = txt_Laufzeit_Ende.Text
              Tabelle1.Cells(lZeile, 23).Value = txt_Bank.Text
              Tabelle1.Cells(lZeile, 24).Value = txt_BLZ.Text
              Tabelle1.Cells(lZeile, 25).Value = txt_Kto_Nr.Text
              Tabelle1.Cells(lZeile, 26).Value = txt_KontoInha.Text
              Tabelle1.Cells(lZeile, 27).Value = txt_IBAN.Text
              Tabelle1.Cells(lZeile, 28).Value = txt_BIC.Text
             
             
               ' Cells(lZeile, 1) = Trim(CStr(.TextBox1.Text))
               ' Tabelle1.Cells(lZeile, 5).Value = TextBox5.Text
               ' Tabelle1.Cells(lZeile, 16).Value = TextBox16.Text
               ' Tabelle1.Cells(lZeile, 21).Value = TextBox21.Text
               ' Tabelle1.Cells(lZeile, 22).Value = TextBox22.Text
             
             
              'Tabelle1.Cells(lZeile, 29).Value = TextBox29.Text

              'Die ListBox muss nun neu geladen werden
              'allerdings nur, wenn sich der Name (ID) geändert hat
              If ListBox1.Text <> Trim(CStr(TextBox1.Text)) Then
                  Call UserForm_Initialize
                  If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
              End If
             
              Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
             
          End If
     
          lZeile = lZeile + 1 'Nächste Zeile bearbeiten
      Loop
     
    End With
     
End Sub

'Beenden Schaltfläche Ereignisroutine
Private Sub CommandButton4_Click()
      Unload Me
End Sub

Private Sub Label18_Click()

End Sub

'Klick auf die ListBox Ereignisroutine
Private Sub ListBox1_Click()
    Dim lZeile As Long
      'Wenn der Benutzer einen Namen anklickt, suchen wir
      'diesen in der Tabelle1 heraus und tragen die Daten
      'in die TextBoxen ein.
     
      'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte
     
      txt_Anrede = ""
      txt_Nachname = ""
      txt_Vorname = ""
      txt_Strasse = ""
      txt_HausNr = ""
      txt_PLZ = ""
      txt_Ort = ""
      txt_Email = ""
      txt_GebDat = ""
      txt_PersoNr = ""
      txt_Mobil = ""
      txt_Festnetz = ""
      txt_VertragNr = ""
      txt_VArt_kurz = ""
      txt_Preis = ""
      txt_Vertrag_Bez = ""
      txt_Laufzeit_Beginn = ""
      txt_Laufzeit_Ende = ""
      txt_Bank = ""
      txt_BLZ = ""
      txt_Kto_Nr = ""
      txt_KontoInha = ""
      txt_IBAN = ""
      txt_BIC = ""
       
              'TextBox1 = ""
              'TextBox16 = ""
              'TextBox21 = ""
              'TextBox22 = ""
              'TextBox29 = ""

     
      'Nur wenn ein Eintrag selektiert/markiert ist
      If ListBox1.ListIndex >= 0 Then
     
          lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
          'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
          Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""
         
              'Wenn wir den Namen aus der ListBox1 in der Tabelle1 Spalte 1
              'gefunden haben, übertragen wir die anderen Spalteninhalte
              'in die TextBoxen!
              If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
             
                  'TextBoxen füllen
                 
                  txt_Anrede = Tabelle1.Cells(lZeile, 2).Value
                  txt_Nachname = Tabelle1.Cells(lZeile, 3).Value
                  txt_Vorname = Tabelle1.Cells(lZeile, 4).Value
                  txt_Strasse = Tabelle1.Cells(lZeile, 5).Value
                  txt_HausNr = Tabelle1.Cells(lZeile, 6).Value
                  txt_PLZ = Tabelle1.Cells(lZeile, 7).Value
                  txt_Ort = Cells(lZeile, 8 )
                  txt_Email = Tabelle1.Cells(lZeile, 9).Value
                  txt_GebDat = Tabelle1.Cells(lZeile, 10).Value
                  txt_PersoNr = Tabelle1.Cells(lZeile, 11).Value
                  txt_Mobil = Tabelle1.Cells(lZeile, 12).Value
                  txt_Festnetz = Tabelle1.Cells(lZeile, 13).Value
                  txt_VertragNr = Tabelle1.Cells(lZeile, 14).Value
                  txt_VArt_kurz = Tabelle1.Cells(lZeile, 15).Value
                  txt_Laufzeit_Beginn = Tabelle1.Cells(lZeile, 19).Value
                  txt_Laufzeit_Ende = Cells(lZeile, 20)
                  txt_BLZ = Cells(lZeile, 24)
                  txt_Kto_Nr = Tabelle1.Cells(lZeile, 25).Value
                  txt_KontoInha = Tabelle1.Cells(lZeile, 26).Value
                  txt_IBAN = Tabelle1.Cells(lZeile, 27).Value
                  txt_Vertrag_Bez = Cells(lZeile, 18)
                  txt_Preis = Cells(lZeile, 17)
                  txt_BIC = Cells(lZeile, 28)
                  txt_Bank = Cells(lZeile, 23)
                 
                 
                 ' TextBox1 = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))
                 ' TextBox16 = Cells(lZeile, 16)
                 ' TextBox21 = Cells(lZeile, 21)
                 ' TextBox22 = Cells(lZeile, 22)
                 ' TextBox29 = Cells(lZeile, 29)
                 
             
                  Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
             
              End If
         
              lZeile = lZeile + 1 'Nächste Zeile bearbeiten
         
          Loop
         
      End If
     
End Sub

Private Sub TextBox20_Change()

End Sub

Private Sub txt_Anrede_Change()

End Sub

Private Sub UserForm_Activate()
      'Wenn die Eingabemaske angezeigt wird, markieren wir den ersten Namen
      'jedoch nur, wenn auch Einträge in der Liste stehen
      If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End Sub

'Startroutine, wird ausgeführt bevor die Eingabemaske angezeigt wird
Private Sub UserForm_Initialize()
    Dim lZeile As Long
   
      'Alle TextBoxen leer machen
   
      txt_Anrede = ""
      txt_Nachname = ""
      txt_Vorname = ""
      txt_Strasse = ""
      txt_HausNr = ""
      txt_PLZ = ""
      txt_Ort = ""
      txt_Email = ""
      txt_GebDat = ""
      txt_PersoNr = ""
      txt_Mobil = ""
      txt_Festnetz = ""
      txt_VertragNr = ""
      txt_VArt_kurz = ""
      txt_Preis = ""
      txt_Vertrag_Bez = ""
      txt_Laufzeit_Beginn = ""
      txt_Laufzeit_Ende = ""
      txt_Bank = ""
      txt_BLZ = ""
      txt_Kto_Nr = ""
      txt_KontoInha = ""
      txt_IBAN = ""
      txt_BIC = ""
     
         ' TextBox1 = ""
         ' TextBox16 = ""
         ' TextBox21 = ""
         ' TextBox22 = ""
         ' TextBox29 = ""





   
      'In dieser Routine laden wir alle vorhandenen
      'Einträge in die ListBox1
      ListBox1.Clear 'Zuerst einmal die Liste leeren
     
      lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
      'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
      Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""
         
          'Aktuelle Zeile in die ListBox eintragen
          ListBox1.AddItem Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))
         
          lZeile = lZeile + 1 'Nächste Zeile bearbeiten
         
      Loop
     
End Sub




« Letzte Änderung: April 29, 2015, 14:14:14 Nachmittag von UliD22 »

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #3 am: April 29, 2015, 17:20:21 Nachmittag »
Hallo,

erstmal vielen Dank für die ausführliche Erläuterung. Dem Fehler nach zu schließen, liefert der SVERWEIS einen Fehler (z.B. #NV)
in der Zelle, weshalb dies nicht der Textbox zugeordnet werden kann. Könntest Deine SVERWEIS-Formel anpassen und schauen,
ob es dann klappt:

WENNFEHLER(SVERWEIS(...);"-")

Du hast zudem einige Ungereimtheiten im Code drin. Beispiele: CStr() sollte auf eine Zahl angewandt werden, somit z.B. statt
CStr("Neuer Eintrag Zeile " & lZeile) dann "Neuer Eintrag Zeile " & CStr(lZeile) denn sonst nützt CStr() nichts. Ereignisse sollten
in der Regel nicht direkt vom Code aufgerufen werden - die werden durch Excel ausgelöst. Besser ist, den Ereigniscode in eine
Prozedur bzw. Funktion auszulagern und dann im Ereignis aufzurufen und Du kannst dann die Prozedur auch wiederum woanders
aufrufen. Optimalerweise sollten auch die Eigenschaften explizit referenziert werden, die Du meinst. Statt txt_Anrede ="" dann
eher txt_Anrede.Text = "" (bei einigen Zeile hast Du es drin, bei anderen nicht). Ebenso mit Cells(...).Value statt nur Cells(...)

Meinst Du mit Schalter die CommandButtons unten?

Gruß


« Letzte Änderung: April 29, 2015, 17:24:33 Nachmittag von maninweb »
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline UliD22

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #4 am: April 30, 2015, 07:52:34 Vormittag »
Hallo,

erstmal vielen Dank für die ausführliche Erläuterung. Dem Fehler nach zu schließen, liefert der SVERWEIS einen Fehler (z.B. #NV)
in der Zelle, weshalb dies nicht der Textbox zugeordnet werden kann. Könntest Deine SVERWEIS-Formel anpassen und schauen,
ob es dann klappt:

WENNFEHLER(SVERWEIS(...);"-")

Du hast zudem einige Ungereimtheiten im Code drin. Beispiele: CStr() sollte auf eine Zahl angewandt werden, somit z.B. statt
CStr("Neuer Eintrag Zeile " & lZeile) dann "Neuer Eintrag Zeile " & CStr(lZeile) denn sonst nützt CStr() nichts. Ereignisse sollten
in der Regel nicht direkt vom Code aufgerufen werden - die werden durch Excel ausgelöst. Besser ist, den Ereigniscode in eine
Prozedur bzw. Funktion auszulagern und dann im Ereignis aufzurufen und Du kannst dann die Prozedur auch wiederum woanders
aufrufen. Optimalerweise sollten auch die Eigenschaften explizit referenziert werden, die Du meinst. Statt txt_Anrede ="" dann
eher txt_Anrede.Text = "" (bei einigen Zeile hast Du es drin, bei anderen nicht). Ebenso mit Cells(...).Value statt nur Cells(...)

Meinst Du mit Schalter die CommandButtons unten?

Gruß

Danke für die erste Antwort.
Sorry, dass ich mich erst jetzt melde; es liegt nicht daran, dass ich keine Lust habe, sondern daran, dass wir am Samstag Neueröffnung haben...

Ich konnte bisher noch nichts ausprobieren.
Aber  2 Antworten kann ich schon geben:

1. an den Stellen, wo ich nur Cells(...) ohne  ».value« verwand habe, wird der Wert der Zelle ausgelesen, die die Tabelle mittels sverweisaus einem anderen TabellenBlatt hollen
Mit  ».value« war die Box leer.

2. Mit Schalter meine ich natürlich die Cmd-Boxen.

Gruss Uli

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #5 am: April 30, 2015, 08:40:59 Vormittag »
Moin Uli,

kannst Du eine Version der Datei ohne Daten hier hochladen? Ein Nachbau der Datei wäre ziemlich aufwändig.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline UliD22

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #6 am: April 30, 2015, 10:45:09 Vormittag »
Moin Uli,

kannst Du eine Version der Datei ohne Daten hier hochladen? Ein Nachbau der Datei wäre ziemlich aufwändig.

Gruß



Ja werde ich machen.

Habe ich auf meinen Server gelegt. zu groß --> kunden.xlsm

Ich habe ALLE Daten, bis auf die Nachnamen  verfälscht.
Und dann habe ich ungefähr 35000 Postleitzahlen gelöscht. Tut mir Leid, wenn Deine Stadt dabei gewesen ist.


Dein Hinweis, dass  WENNFEHLER(SVERWEIS(...);"-") war 
\o/\o/\o/\o/\o/\o/\o/  SPITZE  \o/\o/\o/\o/\o/\o/\o/

Der Hat schon mal geholfen -

Jetzt gibt es noch die CMD- unten.

Also:
1. Neuer Datensatz --> generiert einen neuen Datensatz - schreibt aber in A »Neuer Eintrag« stattdessen sollte dort aber der   Zu- und Vorname verkettet werden (...  =VERKETTEN(C3; " "; D3) ... )

2. Springt nach dem Speichern des neuen Datensatzes der Curser immer wieder nach oben ...

hmmm ... wenn ich Dir (Euch) damit auf die E.. Nerven gehe, dann sagt es mir -- BITTE

« Letzte Änderung: April 30, 2015, 11:05:27 Vormittag von UliD22 »

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #7 am: April 30, 2015, 12:10:00 Nachmittag »
Hallo,

ok, hab's mir runtergeladen und schaue es mir nachher mal an. Ggf. geht's aber auch erst morgen.
Melde mich dann wieder hier.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline UliD22

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #8 am: April 30, 2015, 12:31:59 Nachmittag »
Hallo,

ok, hab's mir runtergeladen und schaue es mir nachher mal an. Ggf. geht's aber auch erst morgen.
Melde mich dann wieder hier.

Gruß

Alles klar  ;) :D ::)

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #9 am: Mai 01, 2015, 11:04:41 Vormittag »
Hallo Uli,

anbei eine Version für Dein Tool. Habe den ehemaligen Code entfernt und eine neue Implementierung in dem Dialog vorgenommen.
Allerdings habe ich nicht alle Ereignisse implementiert, speziell zu den Textboxen fehlen noch einige. Du müsstest diese also dann
ergänzen; als Muster dienen dann die bereits implementierten. Ereignisse für die abhängigen Textboxen bzw. die, die an Formeln
gekoppelt sind, sind nicht notwendig.

Der Speichern Button ist nicht enthalten. Da hängt's davon ab, ob Du nur Ändrungen am aktuellen Datensatz oder alle and den
Datensätzen vorhandenen Änderungen speichern möchtest. Beides würde eine andere Art der Implementierung bedingen, d.h.
dass dann die Datensätze (oder mindestens der aktuelle) nicht direkt in die Tabelle geschrieben werden, sondern z.B. in einem
Array vorgehalten werden. Um das zu implementieren fehlt mir allerdings die Zeit. Das Löschen ist auch relativ simpel, es können
dann Lücken entstehen. Könntest beim Beenden des Dialogs sortieren. Insgesamt, schau' mal, ob's so passt. Intensiv getestet
habe ich nicht.

PS: damit die Datei hier hochgeladen werden kann, habe ich mal viele Datensätze bei den BIC's entfernt.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline UliD22

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #10 am: Mai 01, 2015, 12:46:53 Nachmittag »
Hallo Uli,

anbei eine Version für Dein Tool. Habe den ehemaligen Code entfernt und eine neue Implementierung in dem Dialog vorgenommen.
Allerdings habe ich nicht alle Ereignisse implementiert, speziell zu den Textboxen fehlen noch einige. Du müsstest diese also dann
ergänzen; als Muster dienen dann die bereits implementierten. Ereignisse für die abhängigen Textboxen bzw. die, die an Formeln
gekoppelt sind, sind nicht notwendig.

Der Speichern Button ist nicht enthalten. Da hängt's davon ab, ob Du nur Ändrungen am aktuellen Datensatz oder alle and den
Datensätzen vorhandenen Änderungen speichern möchtest. Beides würde eine andere Art der Implementierung bedingen, d.h.
dass dann die Datensätze (oder mindestens der aktuelle) nicht direkt in die Tabelle geschrieben werden, sondern z.B. in einem
Array vorgehalten werden. Um das zu implementieren fehlt mir allerdings die Zeit. Das Löschen ist auch relativ simpel, es können
dann Lücken entstehen. Könntest beim Beenden des Dialogs sortieren. Insgesamt, schau' mal, ob's so passt. Intensiv getestet
habe ich nicht.

PS: damit die Datei hier hochgeladen werden kann, habe ich mal viele Datensätze bei den BIC's entfernt.

Gruß

Das hört sich klasse an.
Ich werde mir das am Sonntag zu Gemüte führen.
Da morgen Eröffnung ist, haben wir grad mal alle Hände voll zu tun.

Aber trotzdem : Vielen Dank  - erst mal...

Offline UliD22

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #11 am: Mai 04, 2015, 08:46:06 Vormittag »
Kurze Zwischenmeldung:

Ich habe Dich natürlich nicht vergessen. Ich ergänze gerade die noch fehlenden Codes-Zeilen.
Was ich bisher gesehen habe, ist klasse!

Melde mich, wenn ich mehr weiß  :D


Komme noch nicht so ganz mit diesem Teil zurecht ... mir ist die Systematik noch nicht ganz klar

Zitat
  Private Sub btn_New_Click()
   
'   Bypass...
   
    blnBypass = True
   
'   Zurücksetzen...
   
    KundendatenZuruecksetzen
   
'   Hinzufügen...
   
    If lsb_Kunden.ListCount > 0 Then
   
      lsb_Kunden.AddItem
      lsb_Kunden.List(lsb_Kunden.ListCount - 1, 0) = CStr(CLng( _
      lsb_Kunden.List(lsb_Kunden.ListCount - 2, 0)) + 1)
      lsb_Kunden.List(lsb_Kunden.ListCount - 1, 1) = "?"
     
?* ?* ?*


    Else
     
      lsb_Kunden.AddItem
      lsb_Kunden.List(lsb_Kunden.ListCount - 1, 0) = CStr(cstDatenblattStartzeile)
      lsb_Kunden.List(lsb_Kunden.ListCount - 1, 1) = "?"

      ?** ?** ?**
     
    End If
   
'   Bypass...
   
    blnBypass = False
   
'   Index...
   
    lsb_Kunden.ListIndex = lsb_Kunden.ListCount - 1
   
  End Sub

Wie geht es hier weiter ...
« Letzte Änderung: Mai 04, 2015, 09:25:27 Vormittag von UliD22 »

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #12 am: Mai 04, 2015, 09:34:29 Vormittag »
Guten Morgen,

Hinzufügen = wenn noch kein Eintrag in der Liste drin ist, dann Zeilennummer (immer in erster Spalte der Listbox) auf die Startzeile setzen.
Ist schon ein Eintrag in der Listbox drin, dann die Zeilenummer der letzten Zeile + 1 nehmen = Letzte Zeile + 1 der Tabelle in dem aktuellen
Einlesezustand. Eine neue Zeile in der Listbox wird an der Ende der Liste gesetzt. Jetzt ok?

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline UliD22

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Antw: VBA Fehlermeldung und ich weiss nicht wieso
« Antwort #13 am: Mai 04, 2015, 12:41:57 Nachmittag »
Guten Morgen,

Hinzufügen = wenn noch kein Eintrag in der Liste drin ist, dann Zeilennummer (immer in erster Spalte der Listbox) auf die Startzeile setzen.
Ist schon ein Eintrag in der Listbox drin, dann die Zeilenummer der letzten Zeile + 1 nehmen = Letzte Zeile + 1 der Tabelle in dem aktuellen
Einlesezustand. Eine neue Zeile in der Listbox wird an der Ende der Liste gesetzt. Jetzt ok?

Gruß

 8) Na klar ...  ::)  Danke

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.