Anzeige
Archiv - Navigation
1876to1880
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Einfügen mit Zeilenhöhe u Spaltenbreite
11.04.2022 15:44:19
Dieter(Drummer)
Guten Tag Spezialisten/innen.
Im Code wird ein definierter Bereich kopiert und in anderem Tab.blatt, an im Code definierten Bereich eingefügt.
Wichtig dabei ist, die Zeilenhöhe und Spaltenbreite werde mit eingefügt. Das funktioniert.
Der Code ist glaube ich aus Herber's Forum, bin mir aber nicht sicher.
Ich suche die Lösung, dass nicht im Code der kopierte und einzufügende Bereich vor definiert ist, sondern frei wählbar ist und Zeilenhöhe und Spaltenbreite ebenfalls mit eingefügt wird.
Mit der Bitte um Hilfe, grüßt
Dieter(Drummer)
Anbei meine Musterdatei mit Code in Modul1: https://www.herber.de/bbs/user/152415.xlsm
  • 
    Sub SuperKopieren()
    Dim rngSource As Range, rngTarget As Range
    Dim iCounter As Integer
    Set rngSource = Worksheets("Tabelle1").Range("B4:D9")
    Set rngTarget = Worksheets("Tabelle2").Range("B5:D10")
    rngSource.Copy rngTarget
    For iCounter = 1 To rngSource.Rows.Count
    rngTarget.Rows(iCounter).RowHeight = _
    rngSource.Rows(iCounter).RowHeight
    Next iCounter
    For iCounter = 1 To rngSource.Columns.Count
    rngTarget.Columns(iCounter).ColumnWidth = _
    rngSource.Columns(iCounter).ColumnWidth
    Next iCounter
    End Sub
    

  • 6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Einfügen mit Zeilenhöhe u Spaltenbreite
    11.04.2022 18:37:57
    ralf_b
    wie stellst du dir die Bereichseingabe denn vor?
    AW: Einfügen mit Zeilenhöhe u Spaltenbreite
    11.04.2022 18:47:16
    Dieter(Drummer)
    Danke ralf_b für Rückmeldung.
    Eine Möglichkeit könnte evtl. per Inputbox erfolgen. Die erste Abfage wäre dann welcher Bereich kopert werden soll und die zweite Abfrage dann, wohin eingefügt werden soll. Ich kann das leider nicht umsetzen.
    Wäre schön, wenn Du da eine Lösung fändest.
    Gruß, Dieter(Drummer)
    AW: Einfügen mit Zeilenhöhe u Spaltenbreite
    11.04.2022 18:56:02
    ralf_b
    du müßtest doch nur die folgenden Zeilen anpassen. Einen Inputbox code findest du sicher selbst. und die Zuweisung zu den rngSource bzw. rngTarget steht doch schon da. Du bist ja kein Neuling wieso glaubst du das nicht zu können?
    
    Set rngSource = Worksheets("Tabelle1").Range("B4:D9")
    Set rngTarget = Worksheets("Tabelle2").Range("B5:D10")
    

    Anzeige
    AW: Einfügen mit Zeilenhöhe u Spaltenbreite
    11.04.2022 19:14:08
    Dieter(Drummer)
    Danke ralf_b für Info,
    Ich werde mich daran versuchen und sehen ob es klappt.
    Ich denke, dass es so wohl möglich ist, nur eine jetzige Idee:
    Set rngSource = Hier die Inputbox für welcher Bereich kopiert werden soll
    Set rngTarget = Hier die Inputbox, wohin der kopierte Bereich eingefügt werden soll.
    Gruß, Dieter(Drummer)
    AW: Habe Lösung gefunden ...
    11.04.2022 19:32:13
    Dieter(Drummer)
    Hallo ralf_b.
    Mein jetzige Lösung ist aus einem Code von: https://www.herber.de/mailing/Ueber_InputBox_festzulegenden_Bereich_kopieren.htm
    und einem Teil meines alten Codes. Der neu sieht jetzt so aus und funktioniert wie gewünscht. Zeilen und Spalten werden auch entsprechend angepasst, wie der kopierte Bereich. Ob der Code noch gekürzt werden kann, werde ich noch vesuchen.
    Danke für Deinen Anstoß zur Lösung.
    Gruß, Dieter(Drummer)
    Der jetzige, funktionierende Code:
    'https://www.herber.de/mailing/Ueber_InputBox_festzulegenden_Bereich_kopieren.htm
  • 'Mit Anpassung von mx
    
    Sub Kopieren()
    Dim rngSource As Range, rngTarget As Range
    Dim iCounter As Integer 'angepasst
    Set rngSource = Application.InputBox _
    ("Kopierbereich auswählen:", Type:=8)
    Worksheets("Tabelle1").Select
    Set rngTarget = Application.InputBox _
    ("Zielbereich eintragen:", Type:=8)
    If rngTarget.Cells.Count > 1 Then
    If rngTarget.Rows.Count  rngSource.Rows.Count Or _
    rngTarget.Columns.Count  _
    rngSource.Columns.Count Then
    Beep
    MsgBox "Quell- und Zielbereich " & _
    "müssen die gleiche Grösse haben!"
    Exit Sub
    End If
    End If
    rngSource.Copy rngTarget
    'mx angepasst
    For iCounter = 1 To rngSource.Rows.Count
    rngTarget.Rows(iCounter).RowHeight = _
    rngSource.Rows(iCounter).RowHeight
    Next iCounter
    For iCounter = 1 To rngSource.Columns.Count
    rngTarget.Columns(iCounter).ColumnWidth = _
    rngSource.Columns(iCounter).ColumnWidth
    Next iCounter
    'mx Anpassung Ende
    Application.CutCopyMode = False
    Range("A1").Select
    End Sub
    

  • Anzeige
    AW: Einfügen des kopierten auch in andere Datei
    12.04.2022 11:26:31
    Dieter(Drummer)
    Guten Tag ralf_b und/oder andere Speziakisten/innen.
    Danke nochmal für deine gestrige Hilfe.
    Ich kann mit meinem Code NUR in der selben Datei, in anderes Tabellenblatt, den kopierten Bereich einfügen. Das klappt gut.
    Leider kann man den kopierten Bereich aber NICHT in eine andere, geöffnete Datei/Tabellenblatt einfügen. Es kommt dann zu einem Fehler und diese Codezeilen sind gelb markiert:
  • Set rngTarget = Application.InputBox _
    ("Zielbereich eintragen:", Type:=8)

  • Frage: Wie kann ich den kopierten Bereich auch in eine andere Datei, Tabellenblatt, einfügen?
    Wäre schön, wenn vor dem einfügen eine Abfrage kommt, ob in anderer Datei eingefügt werden soll und wenn ja, dann soll die Möglichkeit gehen. Wenn nein, dann in der aktiven Datei kopiertes einfügen.
    Mit der Bitte um entsprechende Möglichkeit im Code zu relaiseren,
    grüßt, Dieter(Drummer)
    Hier nochmal mein jetziger Code:
  • 'https://www.herber.de/mailing/Ueber_InputBox_festzulegenden_Bereich_kopieren.htm
    'Mit Anpassung von mx
    
    Sub SuperKopieren()
    Dim rngSource As Range, rngTarget As Range
    Dim iCounter As Integer 'angepasst
    Set rngSource = Application.InputBox _
    ("Kopierbereich auswählen:", Type:=8)
    Worksheets("Tabelle1").Select
    Set rngTarget = Application.InputBox _
    ("Zielbereich eintragen:", Type:=8)
    If rngTarget.Cells.Count > 1 Then
    If rngTarget.Rows.Count  rngSource.Rows.Count Or _
    rngTarget.Columns.Count  _
    rngSource.Columns.Count Then
    Beep
    MsgBox "Quell- und Zielbereich " & _
    "müssen die gleiche Grösse haben!"
    Exit Sub
    End If
    End If
    rngSource.Copy rngTarget
    'mx angepasst
    For iCounter = 1 To rngSource.Rows.Count
    rngTarget.Rows(iCounter).RowHeight = _
    rngSource.Rows(iCounter).RowHeight
    Next iCounter
    For iCounter = 1 To rngSource.Columns.Count
    rngTarget.Columns(iCounter).ColumnWidth = _
    rngSource.Columns(iCounter).ColumnWidth
    Next iCounter
    'mx Anpassung Ende
    Application.CutCopyMode = False
    Range("A1").Select
    End Sub
    

  • Anzeige

    301 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige