Code funktionert nicht korrekt

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

Betrifft: Code funktionert nicht korrekt
von: Michael
Geschrieben am: 29.04.2015 09:25:23

Hallo Leute,
bei meinem Projekt liegen noch ein paar Steine im Weg. Ich bin nicht der VBA Spezialist und versuche mich tapfer durchzukämpfen. Leider komme ich jetzt nicht mehr weiter :/
Vllt kann mir jemand behilflich sein??? Mein bisheriger Code funktioniert im Prinzip beinahe so wie ich es brauche, allerdings gibt es noch Verbesserungen.
Mein Code lautet:


Private Sub cmdBestellung_Click()
'Schließt das Formular frmBestellung
Unload frmBestellung
'Übernimmt per Klick die SAPNr.
ActiveWindow.SmallScroll Down:=-24 <--HIER SOLL DER ANWENDER EINE BELIEBIGE AUSWÄHLEN
    Range("B2").Select <--DIE SAPNR.kann irgendwo aus der Spalte ausgewählt werden
    ActiveSheet.Shapes.Range(Array("Button 12")).Select
    Selection.OnAction = "CommandBestellung_ausloesen"
    Range("B2").Select
    Selection.Copy
    Sheets("Befundzettel").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Befundmaterial_STE110").Select
    Range("B20").Select <--ANWENDER KANN MEHRERE ARTIKEL AUSWÄHLEN(irgendwo SPALTE B)
    Application.CutCopyMode = False
    Selection.Copy
    ActiveSheet.Shapes.Range(Array("Button 12")).Select
    Application.CutCopyMode = False
    Selection.OnAction = "CommandBestellung_ausloesen"
    Range("B16").Select
    Selection.Copy
    Sheets("Befundzettel").Select
    Range("D10").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Befundmaterial_STE110").Select
End Sub

Habt Ihr eine Lösung für diese Herausforderung? Das wäre super :)
Gruß Micha und Danke..

Bild

Betrifft: AW: Code funktionert nicht korrekt
von: fcs
Geschrieben am: 30.04.2015 08:24:43
Hallo Micha,
die genauen Aktionen, die du ausführen möchtets sind fürmich nicht 100% klar. Insbesondere was statt der Selection der Schaltflache tatsächlich passieren soll.
Die Auswahl der Zellen für SAP-Nr. und Artikel kann man über eine Variante der Input-Box in Excel steuern.
Gruß
Franz

Private Sub cmbBestellung_Click()
    Dim varZelleAuswahl
    Dim varZelleArtikel As Range, intOffset As Integer
    Dim ZelleArtikel_1 As Range
    On Error GoTo Fehler
'Schließt das Formular frmBestellung
    Unload frmBestellung
    
    'Übernimmt per Klick die SAPNr.
Auswahl_SAP_Nr:
    Set varZelleAuswahl = Application.InputBox( _
            Prompt:="Bitte Zelle mit SAP-Nr. in Spalte B auswählen", _
            Title:="Auswahl SAP-Nr", _
            Type:=8)
    
    'Prüfen, ob SAP-Nr. in Spalte B ausgewählt wurde
    If varZelleAuswahl.Column <> 2 Then
        MsgBox "Gewählte Zelle:  " & varZelleAuswahl.Address & vbLf _
                & "SAP-Nr muss in Spalte B ausgewählt werden!", _
                vbOKOnly, "SAP-Nr auswählen"
        GoTo Auswahl_SAP_Nr
    End If
    
'    ActiveSheet.Shapes.Range(Array("Button 12")).Select
'    Selection.OnAction = "CommandBestellung_ausloesen"
'    Range("B2").Select
    
    Call CommandBestellung_ausloesen   '????
    
    varZelleAuswahl.Copy
    
    Sheets("Befundzettel").Select
    
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Application.CutCopyMode = False
        
    Sheets("Befundmaterial_STE110").Select
    
Auswahl_Artikel:
    'ARTIKEL AUSWÄHLEN(irgendwo SPALTE B)
    Set varZelleAuswahl = Application.InputBox( _
            Prompt:="Bitte Zelle(n) mit Artikel in Spalte B auswählen", _
            Title:="Auswahl Artikel", _
            Type:=8)
            
    'Prüfen, ob Artiel in Spalte B ausgewählt wurden
    For Each varZelleArtikel In varZelleAuswahl.Cells
        If varZelleArtikel.Column <> 2 Then
            MsgBox "Gewählte Zelle:  " & varZelleArtikel.Address & vbLf _
                & "Artikel muss in Spalte B ausgewählt werden!", _
                vbOKOnly, "Artikel auswählen"
            GoTo Auswahl_Artikel
        End If
    Next
    
 '   ActiveSheet.Shapes.Range(Array("Button 12")).Select
 '   Application.CutCopyMode = False
 '   Selection.OnAction = "CommandBestellung_ausloesen"
    Call CommandBestellung_ausloesen '????
    
    Sheets("Befundzettel").Select
    
    'Zelle in der der 1. Artikl eingetragen werden soll
    Set ZelleArtikel_1 = Sheets("Befundzettel").Range("D10")
    
    For Each varZelleArtikel In varZelleAuswahl.Cells
        If varZelleArtikel.Column = 2 Then
            varZelleArtikel.Copy
            ZelleArtikel_1.Offset(intOffset, 0).PasteSpecial Paste:=xlPasteValues, _
                Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            intOffset = intOffset + 1
        Else
            MsgBox "Dies Zelle """ & varZelleArtikel.Address _
                & """ wurde nicht in Spalte B ausgewählt!", _
                vbOKOnly, "gewählte Artikel.eintragen"
        End If
    Next
    Application.CutCopyMode = False
    
    Sheets("Befundmaterial_STE110").Select
Fehler:
    With Err
        Select Case .Number
            Case 0 'alles OK
            Case 13 'Typfehler
                'Zellauswahl in Inputbox wurde abgebrochen
            Case Else
                MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
        End Select
    End With
End Sub


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Code funktionert nicht korrekt"