Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

vba codes verbinden?? | Herbers Excel-Forum


Betrifft: vba codes verbinden?? von: alex
Geschrieben am: 13.10.2008 23:37:49

Hallo zusammen,
Wie kann man diese Codes kombinieren?

Code 1 (per CommandButton): wird der Bereich A16:L16 im Tabellenblatt „Grundformular“ kopiert und schaltet dann in das Tabellenblatt Übersicht

Sub Eintragungenübernehmen()
Range("A16:L16").Select
Selection.Copy
Sheets("Übersicht").Select
End Sub



In „Übersicht“ wähle ich per Doppelklick auf Zellen in Spalte A verschiedene Tabellenblätter an. (Die kopierten Daten befinden sich noch im Kopierspeicher.)

Code 2:
'zur Ansteuerung einzelner Trainingsnachweise mit Doppelklick

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
For Each Sheet In ThisWorkbook.Sheets
    If Sheet.Name <> ActiveSheet.Name Then
        Sheet.Visible = False
    End If
Next
If ActiveCell.Column = 1 Then
    Sheets(ActiveCell.Row).Visible = True
    Sheets(ActiveCell.Row).Activate
Cancel = True
End If
End Sub



Mit Doppelklick habe ich nun das ausgewählte Tabellenblatt.

Um die letzte beschriebene Zeile auf dem aktiven Tabellenblatt zu ermitteln und in der nächsten die Daten einzufügen
Code 3:
Range(„A65536“).End(xlUp).Offset(1,0).Select
Selection.Paste

Wie kann ich Code2 und Code3 verbinden?

Für eure Antworten dankbar

Alex

  

Betrifft: AW: vba codes verbinden?? von: fcs
Geschrieben am: 14.10.2008 11:56:37

Hallo Alex,

den ersten Code brauchst du eigentlich nicht, da du immer den gleichen Datenbereich aus dem Grundformular kopieren willst.

Code 2 und 3 kann man dann etwa wie folgt zusammen.

Gruß
Franz

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  For Each Sheet In ThisWorkbook.Sheets
      If Sheet.Name <> ActiveSheet.Name Then
          Sheet.Visible = False
      End If
  Next
  If ActiveCell.Column = 1 Then
      Cancel = True
      Sheets(ActiveCell.Row).Visible = True
      Sheets(ActiveCell.Row).Activate
      If MsgBox(Prompt:="Daten aus Grundformular Zeiel 16 eintragen?", _
        Buttons:=vbYesNo, _
        Title:="Daten aus Grundformular kopieren") = vbYes Then
        'Daten aus Grundformular kopieren
        Worksheets("Grundformular").Range("A16:L16").Copy _
                Destination:=ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)
        'Zeilennummer anpassen
        If IsNumeric(ActiveSheet.Range("A65536").End(xlUp)) Then
          ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Value = _
            ActiveSheet.Range("A65536").End(xlUp).Value
        Else
          ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Value = 1
        End If
      End If
  End If
End Sub




  

Betrifft: AW: vba codes verbinden von: alex
Geschrieben am: 14.10.2008 12:23:53

Hi Franz,
danke für deine Unterstützung. Klappt jetzt so wie ich mir das gewünscht habe. War echt wichtig für mich.

Nur noch eines:

An welcher Stelle des Codes füge ich ein, dass er wieder auf das Blatt "Übersicht" zurückkehrt?

Danke nochmal,
alex


  

Betrifft: AW: vba codes verbinden von: fcs
Geschrieben am: 14.10.2008 13:04:28

Hallo Alex,

Anpassung:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  For Each Sheet In ThisWorkbook.Sheets
      If Sheet.Name <> ActiveSheet.Name Then
          Sheet.Visible = False
      End If
  Next
  If ActiveCell.Column = 1 Then
      Cancel = True
      Sheets(ActiveCell.Row).Visible = True
      Sheets(ActiveCell.Row).Activate
      If MsgBox(Prompt:="Daten aus Grundformular Zeiel 16 eintragen?", _
        Buttons:=vbYesNo, _
        Title:="Daten aus Grundformular kopieren") = vbYes Then
        'Daten aus Grundformular kopieren
        Worksheets("Grundformular").Range("A16:L16").Copy _
                Destination:=ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)
        'Zeilennummer anpassen
        If IsNumeric(ActiveSheet.Range("A65536").End(xlUp)) Then
          ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Value = _
            ActiveSheet.Range("A65536").End(xlUp).Value + 1
        Else
          ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Value = 1
        End If
      End If
      Sheets("Übersicht").Activate
  End If
End Sub


Gruß
Franz


  

Betrifft: Danke!!! Funzt. o.T. von: alex
Geschrieben am: 14.10.2008 14:31:54

.


Beiträge aus den Excel-Beispielen zum Thema "vba codes verbinden??"