Microsoft Excel

Herbers Excel/VBA-Archiv

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

Werte aus unterschiedlichen Spalten einfügen


Betrifft: Werte aus unterschiedlichen Spalten einfügen von: Flip
Geschrieben am: 23.09.2019 13:47:29

Mahlzeit in die Runde!

Ich hätte wiedermal ein wahrscheinlich recht simples Problem. Jedoch komme ich nicht auf die Lösung drauf.

Ich hab eine Datei wo ich mit
Application.Intersect(Selection.EntireRow, Range("B:C,J:J,Z:Z")).Copy

Werte aus verschiedenen Spalten der angewählten Zeile kopiere.

Wie sieht jetzt das Gegenstück dazu aus? ich möchte die Werte in einem anderen Tabellenblatt in einer angewählten Zeile in (A:B,K:K,M:M) einfügen.
Oder gibt es da überhaupt eine elegantere Lösung mit der Übertragung?

Vielen Dank!! LG

  

Betrifft: AW: Werte aus unterschiedlichen Spalten einfügen von: fcs
Geschrieben am: 24.09.2019 14:57:36

Hallo Flip,

das Einfügen eines zu kopierenden Bereichs aus mehren Spalten in unterschiedliche Spalten ist leider nicht so einfach.

Man muss die selektierten Spaltenbereiche einzeln Kopieren in die Zielzellen.

Kann etwa wie folgt aussehen.

LG
Franz

Sub Copy_Selection_BC_J_Z_to_AB_K_M()
    Dim wksZiel As Worksheet
    Dim rngSelection As Range, rngArea
    Dim iCount As Integer
    Dim arrZiel
    Dim rowZiel As Long, rngZiel As Range
    
    On Error GoTo Beenden
    
    Set wksZiel = Worksheets(2) 'Worksheets("Tabelle2")
    
    Set rngSelection = Application.Intersect(Selection.EntireRow, Range("B:C,J:J,Z:Z"))
    arrZiel = Array("A", "K", "M")
    wksZiel.Activate
    
    Set rngZiel = Application.InputBox("Bitte Zelle in Einfügezeile auswählen", "Kopieren  _
Spezial", ActiveCell.Address, Type:=8)
    rowZiel = rngZiel.Row
    For Each rngArea In rngSelection.Areas
        rngArea.Copy wksZiel.Range(arrZiel(iCount) & rowZiel)
        iCount = iCount + 1
    Next
    Range("A" & rowZiel).Select
    
Beenden:
End Sub



  

Betrifft: AW: Werte aus unterschiedlichen Spalten einfügen von: Pierre
Geschrieben am: 24.09.2019 15:10:32

Hallo,

vielleicht kannst du damit schon mal etwas anfangen.

Das Problem ist bei dir, dass du die Zeile nicht komplett kopierst und die Zielzellen am Ende auch noch andere werden sollen. Zudem verschiebt sich der Abstand der letzten Spalte auch noch.

Macht die Sache an sich halt schwieriger.
Vielleicht findet jemand noch eine passende Lösung, ich bin dazu leider nicht in der Lage, wie ich feststellen musste.

Ich habe versucht, das über Inputboxen zu lösen, so dass man also in Tabelle 1 die Zeilennummer angibt, die man kopieren will und in Tabelle 2 die Nummer, in welche das ganze eingefügt werden soll.
So als Anstoß vielleicht.

Jedenfalls, folgender Code fragt dich via Inputbox nach der Zeilennummer (ich habe in Spalte A eine Hilfsspalte eingefügt, wo ich einfach die Nummerierung eingefügt habe, Spalte A wird im Code durchsucht.)

Private Sub Worksheet_Activate()
'Sucht die laufende Nummer und überträgt die Kundendaten in das Blatt "Bericht"
Dim Eingabe As String
Dim Suche As Range
Dim Quelle As Worksheet, Ziel As Worksheet
Dim zelleE

    Set Quelle = Sheets("Tabelle1")
    Set Ziel = Sheets("Tabelle2")

    Eingabe = InputBox("Bitte die gewünschte Lfd. Nr. eingeben", "Befunddatenblatt bearbeiten")
    Set Suche = Quelle.Range("A1:A10000").Find(what:=Eingabe, LookIn:=xlValues, lookat:=xlWhole) _


        If Not Suche Is Nothing Then
   
            With Ziel
                .Range("A1") = Quelle.Cells(Suche.Row, "B")
                .Range("B1") = Quelle.Cells(Suche.Row, "C")
                .Range("K1") = Quelle.Cells(Suche.Row, "J")
                .Range("M1") = Quelle.Cells(Suche.Row, "Z")
            End With
        
            Else
             MsgBox "Es wurde kein Treffer gefunden"
        End If

End Sub
Ist wie gesagt alles nur ein Ansatz bzw. Gedankenanstoß für dich.

Ach ja...Derzeit wird eine Zeile in tabelle2 Zeile 1 eingefügt und diese wird jedes Mal überschrieben, leider schaffe ich es auch nicht so recht, dass wenigstens immer die nächste freie Zeile genommen wird.

Gruß Pierre

PS: Den Code habe ich in der Grundform von folgender Seite: https://www.ms-office-forum.net/forum/showthread.php?t=360490



  

Betrifft: AW: Werte aus unterschiedlichen Spalten einfügen von: Flip
Geschrieben am: 25.09.2019 08:59:10

Erstmal vielen Dank euch beiden.

Ok das ist dann doch komplexer als ich zu beginn dachte. Wollte das wirklich nur mit copy/paste lösen ohne Inputboxen usw.
Dann ist es wohl doch besser das ganze gleich mit einer direkten Verknüpfung zu machen und per Button ein File mit den benötigten werten zu erstellen.
Der Grundgedanke war das ich eine Werkzeugdatenbank habe wo pro Zeile von A:P Informationen für jedes Werkzeug stehen. Ich möchte dann einen Leihbeleg für diverse Werkzeuge drucken. benötige aber im Leihbeleg nur die Infos aus B:C,J:J,Z:Z und diese müssen in A:B,K:K,M:M im anderen File eingetragen werden. die erste Zeile im neuen File ist immer 17.
Jetzt wäre halt interessant wenn man mehrere Werkzeuge in einen Leihbeleg übertragen möchte ob man dies über Checkboxen oder Inputboxen löst. Man müsste dann halt immer die erste freie Zeile wählen.
Ich werde mich mal auf die Suche begeben ob ich hier und da Codeschnipsel finden werde.

Trotzdem vielen Dank dafür. LG


  

Betrifft: AW: Werte aus unterschiedlichen Spalten einfügen von: Flip
Geschrieben am: 25.09.2019 09:15:36

Müsste dann eigentlich keine Eigenständige Datei sein sondern könnte eigentlich den Leihbeleg auch als weiteres Tabellenblatt in der Datenbank anlegen und mit Verweisen arbeiten. Wenn ich zb mehrere Zeilen mittels Checkboxen in der Datenbank anwähle das die benötigten Werte dann aufs Tabellenblatt "Leihbeleg" in die benötigten freien Zellen eingetragen werden sofern sich in der Datenbank etwas befindet. SVERWEIS geht aber nicht da ich die Zellen im Leihbeleg immer noch selber bearbeiten können muss.


  

Betrifft: AW: Werte aus unterschiedlichen Spalten einfügen von: fcs
Geschrieben am: 25.09.2019 11:33:28

Hallo Flip,

verwende in der Datenbank keine Checkboxen zum markieren der Datenzeilen, deren Inhalte ins Leihformular eingetragen werden sollen.
Einfach für die Verarbeitung ist einfach ein "X" - dies kann man zB. per Doppelklick oder Rechte-Mausklick in die Zellen erzeugen/löschen.

Folgenden per Makros unterstützten Ablauf kann man dann einrichten.

1. Leihformular leeren und aktuelles Dtaum eintragen (Per Makro-Schaltfläche)

2. Leihformular teilweise ausfüllen (Name entleiher etc)
3. In Datenbank die Geräte in einer Spalte mit "X" markieren, die entliehen werden.
4. Daten aus Datenbank in Leihformular übertragen, Leihdatum und Entleiher etc in Datenbank eintragen, "X" wieder löschen (per Makro Schaltfläche)
5. ggf. weitere Daten im Leihformular eintragen
6. Leihformular als PDF oder Excel-Datei speichern und Drucken (ggf. mehrfach). (per Makro-Schaltfläche)
7. Leihformular mit Geräten an Kunde übergeben und Kopie in Akte ablegen/archivieren.

LG
Franz


  

Betrifft: AW: Werte aus unterschiedlichen Spalten einfügen von: Flip
Geschrieben am: 26.09.2019 09:55:28

Hallo Franz!

Wow Super vielen Dank für die Tipps und Ideen!

Das ist eigentlich der perfekte Ablauf wie ich mir das vorstelle! Genauso soll es sein mit den unterschiedlichen Befehlen und Möglichkeiten.
Nur reichen meine VBA Kenntnisse nichtmal ansatzweise für diese Herausforderung aus. ich kann nur schauen ob ich mir da teilweise was aus dem Forum rausziehen kann.

LG


  

Betrifft: AW: Werte aus unterschiedlichen Spalten einfügen von: Flip
Geschrieben am: 26.09.2019 11:01:24

Hier mal eine Testdatei
https://www.herber.de/bbs/user/132210.xls


Beiträge aus dem Excel-Forum zum Thema "Werte aus unterschiedlichen Spalten einfügen"