Office: VBA Einzeiler Syntaxproblem

Helfe beim Thema VBA Einzeiler Syntaxproblem in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, mein heutiges problem ist verleichsweise einfach hat mich aber unzählige nerven gekostet. Ich schaffe es einfach nicht die Syntax... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von N123456789, 8. Mai 2013.

  1. N123456789 Erfahrener User

    VBA Einzeiler Syntaxproblem


    Hallo zusammen,

    mein heutiges problem ist verleichsweise einfach hat mich aber unzählige nerven gekostet. Ich schaffe es einfach nicht die Syntax richtig hinzubekommen. Nichtmal mit dem Internet und alten Forumsbeiträgen. Nun gut.

    Hier ist mein Code

    Code:
    Dim KndAnz As Variant
        Dim KndNr As Integer
        
        
    Set w5 = Worksheets("Auftragsdatenbank")
     '-------------------------------------------------------------
        
        'Filter Zurücksetzen
        Sheets("Auftragsdatenbank").Select
        ActiveSheet.ListObjects("ListeAuftrag").Range.AutoFilter Field:=1
        
     'Filter um den richtigen Kunden zu identifizieren
        KndNr = txtKundennummer
        'ActiveSheet.ListObjects("ListeAuftrag").Range.AutoFilter Field:=1, Criteria1:="=" & CLng(KndNr)
    
    
    '_____ Bis hierher kein problem
    
     'Zählen wie viele Kundeneinträge sind vorhanden
     Sheets("Auftragsdatenbank").Select
     
      KndAnz = Application.WorksheetFunction.CountIf(Range("ListeAuftrag[Kundennummer]"), "CLng(KndNr)")
      
      
     MsgBox (KndNr & "_" & KndAnz)
    
    End Sub
    Sooo!
    Es geht um die vorletzte Zeile:
    Code:
      KndAnz = Application.WorksheetFunction.CountIf(Range("ListeAuftrag[Kundennummer]"), "CLng(KndNr)")
    Ich schaffe es einfach nicht dass mir Excel die Zellen zählt die eine bestimmte Kundennummer haben. Die Kundennummer kommt von einer Userform und bis dahin passt auch alles.
    Mein bester Gedanke war bisher: Es funktioniert nicht richtig weil ich mich in einer angelegten Liste befinde. Jedoch halte ich diese Begründung für schwach.

    Mein erster Gedanke war erstmal rumprobieren -> ohne Erfolg
    Der zweite Gedanke war, Nach der Nummer zu filtern und dann "CountA" als Befehl zu verwenden um die leeren Zeilen die nach dem Filtern entstehen zu überbrücken. Dann ist mir aber gekommen die sind ja gar nicht leer sondern einfach nur ausgeblendet. Also wieder kein Erfolg

    Ein weiteres problem ergibt sich bei dem Befehl ".End(xlUp)" da geht auch nix mehr.
    Habt ihr also vielleicht eine Idee wie ich meine Range definiere und die Variable "KndNr" als Suchkriterium verwende?

    Über eure Hilfe würde ich mich sehr freuen

    Gruß
     
    N123456789, 8. Mai 2013
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    weshalb schreibst du in der fraglichen Zeile "CLng(KdnNr)" in Anführungszeichen? Das würde doch bedeuten, du suchst nach dem String, also Text "CLng(KdnNr)" und nicht nach CLng(KdnNr).

    Bis später,
    Karin
     
    Beverly, 8. Mai 2013
    #2
  3. N123456789 Erfahrener User
    Hallo Karin,

    vielen Dank für den Tipp. Jetzt funktioniert alles wunderbar.
    Wenn ich darf würde ich gleich noch eine Frage zum Folgeproblem stellen.

    Ich habe bis zum jetzigen Punkt die relevante Kundennummer und die Anzahl an Einträgen dieser Kundennummer in meiner Liste bestimmt. Basierend auf der Anzahl der relevanten Kundenummern würde ich jetzt gerne Multipages generieren. Wenn z.B. die KndNr "777" -> 4 mal vorkommt sollen 4 Multipages in meiner userform erstellt werden. Nun weiß ich wieder nicht recht ob die syntax richtig ist. Denn es passiert nichts, es kommt aber auch keine Fehlermeldung.
    Achso der erste Reiter von dem Steuerelement "Multipage" ist bereits vergeben und heißt Neu. Mit den anderen Multitabs versuche ich nun eine art Kundenhistorie von Rechnungen zu erstellen. D.h. die Multipage wird geladen und enthält die Informationen aus der entsprechenden Zeile.

    macht das sinn?
    Wenn nein dann hilft hoffentlich die Beispieldatei

    Hier mein gesammter Code:
    PHP:
      Dim x As Variant
        Dim KndAnz 
    As Variant
        Dim KndNr 
    As Variant
        Dim RelevanteZeile 
    As Integer
        
        
    Set w5 
    Worksheets("Auftragsdatenbank")

     
    '-------------------------------------------------------------
        
        '
    Filter Zurücksetzen
        Sheets
    ("Auftragsdatenbank").Select
        ActiveSheet
    .ListObjects("ListeAuftrag").Range.AutoFilter Field:=1
        
     
    'Filter um den richtigen Kunden zu identifizieren und die Startzeile
        KndNr = txtKundennummer
        ActiveSheet.ListObjects("ListeAuftrag").Range.AutoFilter Field:=1, Criteria1:="=" & CLng(KndNr)

     '
    Zählen wie viele Kundeneinträge sind vorhanden
        Sheets
    ("Auftragsdatenbank").Select
        KndAnz 
    Application.WorksheetFunction.CountIf(Range("ListeAuftrag[Kundennummer]"), CLng(KndNr))
    'Kontrolle
        MsgBox (KndNr & "_" & KndAnz)
     
     '
    _____ Bis hierher kein problem

     
    '-------------------------------------- Eigentliches Multipage Problem
     
     '
    Wo Endet die Schleife?
    'Erstellungsschleife für die Reiter: Erstellen, Benennen, Positionieren Ansatz-1
        '
    For 1 To KndNr
         
    '   If w5.Range("ListeAuftrag").Cells(i, 1) <> "" Then
          '      
    i
           
            
    'Festlegung um welche Zeilen es geht ---> über: If w5.Range("ListeAuftrag").Cells(i, 1) = KndNr Then???
                For Each c In Worksheets("Auftragsdatenbank").Range("ListeAuftrag[Kundennummer]").Cells
                If Abs(c.Value) = KndNr Then
                '
    RelevanteZeile Abs(c.Value).Range(rowscount3)

            
    ' Versuch 1 - hat nicht geklappt
           ' 
    For Each cell In Range("A:A")
           
    ' If w5.Range("ListeAuftrag").Cells = KndNr Then
                
                    
                    '
    Anlegen der Zusätzlichen Reiter in Abhängikeit der Einträge in Spalte A ---> (Vorher war überall Multipage1)
                    
    MultiPage1.Pages.Add.Caption w5.Range("ListeAuftrag").Cells(i3'--> Bei For-Next-Schleife relevante Row bestimmen?
                     MultiPage1.Pages(0).Controls.Copy
                    MultiPage1.Pages(x).Paste

                    '
    Positionsfeststellung des originalen Reiters (Reiter "Neu")
                    For 
    Each ctl In MultiPage1.Pages(0).Controls
                        
    If TypeOf ctl Is MSForms.Frame Then         'Bezeichnung des frames?
                            l = ctl.Left
                            r = ctl.Top
                            Exit For
                        End If
                    Next
                
                    '
    Ausrichtung des kopierten und eingefügten Reiters
                      
    For Each ctl In MultiPage1.Pages(x).Controls
                          
    If TypeOf ctl Is MSForms.Frame Then
                              ctl
    .Left l
                              ctl
    .Top r
                              
    Exit For
                          
    End If
                      
    Next
                    
                
    Exit For
                
    End If
                
    Next
                    
      
    'Beschriftung der Textfelder im "x'ten" tab
      
       ' End If
    'Next


    'Filter wieder zurücksetzen
        Sheets("
    Auftragsdatenbank").Select
        ActiveSheet.ListObjects("
    ListeAuftrag").Range.AutoFilter Field:=1

    End Sub

    Gruß
     
    N123456789, 9. Mai 2013
    #3
Thema:

VBA Einzeiler Syntaxproblem

Die Seite wird geladen...
  1. VBA Einzeiler Syntaxproblem - Similar Threads - VBA Einzeiler Syntaxproblem

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  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