Advertisement
Guest User

Untitled

a guest
May 16th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Sub Inhaltskopie()
  2.   Dim Meldung As Long
  3.   Dim Suchen As Variant
  4.   Dim n%, x%, xZelle%, yZelle%
  5.   Dim Bereich$, text$, Adresse$(), Akte$()
  6.   Dim Startzeile As Long
  7.   Dim wksAktiv As Worksheet
  8.   Startzeile = ActiveCell.Row
  9.   Set wksAktiv = ActiveSheet
  10.   Bereich = "D20:Ende"
  11.  
  12. start:
  13.  
  14.   'Suchbegriff eingeben
  15.  Suchen = InputBox("Suchgegriff eingeben." & vbCrLf & _
  16.   "ENTER ohne Wert = Abbruch", "Filminfos suchen & kopieren", ActiveCell.Value)
  17.   If Suchen = "" Then Exit Sub
  18.  
  19.   ' letzte Zelle im Bereich ermitteln
  20.  With ActiveSheet.Range(Bereich)
  21.   xZelle = .Columns(.Columns.Count).Column
  22.   yZelle = .Rows(.Rows.Count).Row
  23.   End With
  24.  
  25.   ' Eigentlicher Suchvorgang
  26.  x = 1
  27.   With wksAktiv.Range(Bereich)
  28.     Set c = .Find(Suchen, After:=Cells(yZelle, xZelle), LookIn:=xlValues)
  29.     If Not c Is Nothing Then
  30.       ErsteAdresse = c.Address
  31.       Do
  32.         ReDim Preserve Adresse(x)
  33.         Adresse(x) = c.Address(RowAbsolute:=False, ColumnAbsolute:=False)
  34.        
  35.         Set c = .FindNext(c)
  36.         x = x + 1
  37.       Loop While Not c Is Nothing And c.Address <> ErsteAdresse
  38.     End If
  39.   End With
  40.  
  41.   ' Anzeige der Suchergebnisse
  42.  text = vbCrLf
  43.  
  44.   ' Die Anzahl der gefundenen Werte ist (x - 1), wenn keiner
  45.  ' gefunden wurde dann ist x = 1
  46.  
  47.   Select Case x
  48.     Case 1
  49.       If MsgBox("Nichts gefunden. Suche abbrechen?", vbYesNo, "Keine Treffer") = vbNo Then GoTo start
  50.     Case 2
  51.     merkdir = ActiveCell.Address
  52.      Range(Adresse(1)).Select
  53.      If ActiveCell.Address = merkdir Then
  54.       If MsgBox("Nichts gefunden. Suche abbrechen?", vbYesNo, "Keine Treffer") = vbNo Then GoTo start
  55.      Else
  56.       If MsgBox("   Diese Filminfo übernehmen?", vbYesNo, "1 Treffer") = vbYes Then
  57.         Call Kopieren(wks:=wksAktiv, ZeileStart:=Startzeile, Zeile:=Range(Adresse(1)).Row)
  58.       End If
  59.      End If
  60.     Case Else
  61.       merkdir = ActiveCell.Address
  62.       For n = 1 To x - 1
  63.               Range(Adresse(n)).Select
  64.        If Not ActiveCell.Address = merkdir Then
  65.          ActiveWindow.ScrollRow = ActiveWindow.ActiveCell.Row
  66.          ActiveWindow.SmallScroll Up:=2
  67.         Meldung = MsgBox("Suchergebnis " & n & _
  68.         " von " & (x - 1) & _
  69.         ". Diese Filminfo übernehmen?", vbYesNoCancel, "Mehrere Treffer")
  70.         If Meldung = vbNo Then
  71.           'do nothing, weiter suchen
  72.        ElseIf Meldung = vbYes Then
  73.           'Daten in Startzeile kopieren
  74.          Call Kopieren(wks:=wksAktiv, ZeileStart:=Startzeile, Zeile:=Range(Adresse(n)).Row)
  75.           Exit For
  76.         ElseIf Meldung = vbCancel Then
  77.           Exit For
  78.         End If
  79.        End If
  80.       Next n
  81.   End Select
  82.   Cells(Startzeile + 1, 4).Select
  83.   ActiveWindow.ScrollRow = ActiveWindow.ActiveCell.Row
  84.   ActiveWindow.SmallScroll Up:=2
  85.  
  86. End Sub
  87.  
  88. Private Sub Kopieren(wks As Worksheet, ZeileStart&, Zeile&)
  89.   'Die Kopierfunktion soll folgendes machen:
  90.  With wks
  91.   '1.) Kopiere Kommentar von Dxx nach D-Startzeile
  92.    .Cells(Zeile, 4).Copy
  93.     .Cells(ZeileStart&, 4).PasteSpecial Paste:=xlPasteComments
  94.   '2.) Kopiere Zelle Exx nach (E-Startzeile)
  95.    .Cells(Zeile, 2).Copy Destination:=.Cells(ZeileStart&, 2)
  96.     .Cells(Zeile, 5).Copy Destination:=.Cells(ZeileStart&, 5)
  97.   '3.) Kopiere Zellen Zxx-ACxx nach Startzeile
  98.    .Range(.Cells(Zeile, 26), .Cells(Zeile, 29)).Copy Destination:=.Cells(ZeileStart, 26)
  99.     Application.CutCopyMode = False
  100.   End With
  101. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement