Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellen einer Zeile in andere Tabelle übernehmen mit Eingabemaske (VBA)
#1
Hallo zusammen, ich benötige Hilfe bei VBA. Der nachfolgende Code funktioniert bei mir soweit, jedoch möchte ich aus Tabelle "Mitglieder" nur bestimmte Zellen (die in dem Code benannt werden) einer Zeile kopieren und diese dann in der Tabelle "Veränderungen" ab Spalte C einfügen, weil die Spalten A und B bereits für andere Werte vorgesehen sind.
Ich freue mich auf Unterstützung.
Option Explicit
Sub kopieren_einfügen()
  Dim rngZelle As Range
  Dim strSuchwort As String
    strSuchwort = InputBox("Welches Suchwort?", "Suchwort eingeben")
        For Each rngZelle In Worksheets("Mitglieder").Range("B:B")
              If rngZelle = strSuchwort Then
                rngZelle.EntireRow.Copy _
                Sheets("Veränderungen").Range("A" & Sheets("Veränderungen").Cells(Rows.Count, 2).End(xlUp).Row + 1)
                Exit Sub
              End If
        Next rngZelle
End Sub
Antworten Top
#2
Ein freundliches Hallo zurück

der Code wird sicher funktionieren, aber mit Range(B:B) durchlaeuft man die ganze Spalte, >1 Million Zeilen, wenn der Sıchtext nicht gefunden wird!!

Ich nehme in dem Falll lieber dıe Find Mehtode, sie ist schneller als For Next. So wie ich die Aufgabe verstanden habe sollen die Daten ja nicht unten angehangen werden, sondern ab Spalte C,D usw. notiert werden. Wievlele das sind bitte selbst festlegen, ich habe mal zwei Spalten C+D vorgegeben. 
Ob man den If vergleich mit Spalte A noch braucht oder haben will bitte selbst entscheiden. Wenn nein die If Then Zeile löschen' 

mfg Gast 123

Code:
Sub kopieren_einfügen()
 Dim rngZelle As Range
 Dim strSuchwort As String
 Dim mFind As Range, vFind As Range
 
   strSuchwort = InputBox("Welches Suchwort?", "Suchwort eingeben")
   'Sucht in Mitglieder die richtige Zelle in Spalte B
   Set mFind = Worksheets("Mitglieder").Range("B:B").Find(What:=strSuchwort, After:=[b2], LookIn:= _
       xlFormulas, LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

   'Sucht in Veränderungen die richtige Zelle in Spalte B
   Set vFind = Worksheets("Veränderungen").Range("B:B").Find(What:=strSuchwort, After:=[b2], LookIn:= _
       xlFormulas, LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

   'Fehlermeldung mit Abbruch wenn Suchtext nicht gefunden wird
   If mFind Is Nothing Then MsgBox "Suchtext in 'Mitglieder' nicht gefunden": Exit Sub
   If vFind Is Nothing Then MsgBox "Suchtext in 'Veränderungen' nicht gefunden": Exit Sub
   
   'jetzt in die gefundenen Zeilen Werte übertragen
   '** Spalte A noch vergleichen??  (sonst IF Then löschen!!
   If vFind.Offset(0, -1) = mFind.Offset(0, -1) Then
      vFind.Offset(0, 1).Value = mFind.Offset(0, 1).Value   'Spalte C
      vFind.Offset(0, 2).Value = mFind.Offset(0, 2).Value   'Spalte D
   End If
End Sub
Antworten Top
#3
2 * Suchen ist Filtern.

Benütze Autofilter.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#4
Hallo an den freundlichen Gast 123,
zunächst einmal vielen Dank für den Vorschlag (Code). Ich bin im Thema VBA noch "Anfänger". Ich habe den Code ausprobiert aber funktioniert leider noch nicht. Ich denke ich habe mich da auch nicht verständlich genug ausgedrückt. Das Tabellenblatt "Mitglieder" besteht aus 29 Spalten und 357 Zeilen mit entsprechenden Einträgen. Ich möchte nun gerne über die Suchmaske nach einem Geburtsdatum (Format: TT.MM:JJJJ) in der Spalte K (nicht B wie von mir angegeben) dieser Datei suchen und dann nur bestimmte, vorgegebene Zellen dieser gefundenen Zeile in das Tabellenblatt "Veränderungen" kopieren. Das Tabellenblatt "Veränderungen" enthält schon 264 gefüllte Zeilen. Die Spalten A und B im Tabellenblatt "Veränderungen" müssen für die nächsten anzufügenden Zeilen aus dem Tabellenblatt "Mitglieder" frei bleiben, weil hier noch nachträglich Werte eingegeben werden müssen. Somit sollte der 1. Eintrag in Spalte C  unter der letzten gefüllten Zeile beginnen und dann in dieser Zeile weiter kopiert werden. Ich hoffe das ist jetzt etwas verständlicher.

MfG mdt8ws

Vielen Dank an snb !

MfG mdt8ws
Antworten Top
#5
Hallo

dann den Rat von  snb  befolgen, das dürfte am einfachsten sein   ...

mfg Gast 123
Antworten Top
#6
Hallo, sorry aber diese Vorgehensweise von snb verstehe ich leider nicht. Bin halt Anfänger bezüglich VBA. Ein vorbereiteter Code wäre für mich sehr hilfreich.
Vielen Dank !
MfG mdt8ws
Antworten Top
#7
Autofilter kann man in Excel händisch (ohne VBA) benützen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
Ah ok, Autofilter kenne ich. Da aber mehrere Vorstandsmitglieder diese Datei bearbeiten, hatte ich an eine VBA-Lösung gedacht. Gibt es eventuell einen Code (Beispiel) für mein geplantes Vorhaben ?

MfG
mdt8ws
Antworten Top
#9
Hallo

ja heute abend habe ich Zeit dafür, mir laufen gerade zwei lkeine Katzen über die Tastatur, wollen mit mir spielen ...

mfg Gast 123
Antworten Top
#10
Hallo, sehr gut das freut mich. Bin noch nicht lange dabei aber ist ja wirklich ein tolles Forum hier.

MfG
mdt8ws
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste