Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1072to1076
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
Inhaltsverzeichnis

Kopierte Zellen ab A66 einfügen

Kopierte Zellen ab A66 einfügen
18.05.2009 20:12:11
andy
Hallo
kopierte Zellen A3:H5 in Tabelle2 nach Tabelle 1 ab B66 in die nächste freie Zelle einfügen.
Komme nicht ganz klar und Dank im vorraus für Hilfe.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopierte Zellen ab A66 einfügen
18.05.2009 21:38:53
Josef
Hallo Andy,
Sub andy()
  Dim lngNextRow As Long
  
  lngNextRow = Application.Max(Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row + 1, 66)
  
  Sheets("Tabelle2").Range("A3:H5").Copy Sheets("Tabelle1").Cells(lngNextRow, 2)
  
End Sub

Gruß Sepp

Anzeige
AW: Kopierte Zellen ab A66 einfügen
18.05.2009 23:29:58
andy
Vielen Dank für die Antwort. Läuft perfekt. Wie aber könnte ich weiter unten Zellen "sperren" in welche nicht geschrieben werden darf?
AW: Kopierte Zellen ab A66 einfügen
19.05.2009 06:31:34
andy
Vielen Dank für die Antwort. Läuft perfekt. Wie aber könnte ich weiter unten Zellen "sperren" in welche nicht geschrieben werden darf? Platzhalter oder ähnlich
AW: Kopierte Zellen ab A66 einfügen
20.05.2009 04:53:05
Josef
Hallo Andy,
z. B. so.
Sub andy()
  Dim lngNextRow As Long, lngMaxRow As Long
  
  lngMaxRow = 98 'letzte beschreibare Zeile
  lngNextRow = Application.Max(Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row + 1, 66)
  
  If lngNextRow < lngMaxRow Then
    Sheets("Tabelle2").Range("A3:H5").Copy Sheets("Tabelle1").Cells(lngNextRow, 2)
  Else
    MsgBox "Bereich voll!"
  End If
End Sub

Gruß Sepp

Anzeige
AW: Kopierte Zellen ab A66 einfügen
20.05.2009 09:31:45
Andy
Vielen Joseph. Leider komme ich alleine nicht weiter. Jetzt ist ein klarer Bereich abgegrenzt in welchem die nächste freie Zelle gesucht wird und die Daten eingefügt werden. Klappt bestens
Gibt es die Möglichkeit mehrere Bereiche für das Einfügen zu Definieren? (C66 bis C80, anschliessend C90 bis C105, anschliessend C130 bis C145 und so weiter?
AW: Kopierte Zellen ab A66 einfügen
21.05.2009 15:42:30
Josef
Hallo Andy,
da steckt aber keine Logik dahinter, zummindest erschliesst sie sich mir nicht.
Erst Zeile 66-80 sind 15 Zeilen, 10 Zeilen abstand zu 90-105 (16 Zeilen), 25 Zeilen abstand zu 130-145 ( wieder 16 Zeilen). Wie geht's weiter und ow versteckt sich da di Logik?
Gruß Sepp

Anzeige
AW: Kopierte Zellen ab A66 einfügen
21.05.2009 16:29:32
Andy
Hallo Joseph. Danke für deine Geduld und Hilfe.
Logik? Die angegebenen Abstände haben wirklich keine Logik sondern sind fiktiv. Also, die kopierten Bereiche werden in ein formatiertes Formular (Tabelle 1, =Offerte) eingelesen. Ab beispielsweise C80 bis C90 sind auf dem Formular Seitentotal, Übertrag etc. und ein fester Seitenumbruch. Entsprechend einem A4 Blatt (nicht nach 25 Zeilen) findet das selbe wieder statt. In diese Bereiche sollte jeweils nichts eingefügt werden können. Da aber die Offerte unbekannt viele Seiten lang sein kann habe ich das usw. angefügt, in der Hoffnung das ich am Code weiterbasteln kann.
Also versuch ich die Frage neu zu formulieren: Beginnend ab Zelle C22 sollen 31 Zellen zum einfügen bereit sein. Die nächsten 12 Zellen dürfen nicht überschrieben werden und ab jetzt gibt es vermutlich eine Logik, denn jeweils 44 Zellen pro Seite können überschrieben werden anschliessend sollen immer 12 Zellen "gesperrt" sein.
Aber ist das überhaupt möglich
Anzeige
AW: Kopierte Zellen ab A66 einfügen
21.05.2009 19:51:22
Josef
Hallo Andy,
da fällt mir im Moment nur diese Lösung ein.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Const cstrRange As String = "C22:C53,C66:C110,C122:C168,C180:C224"
Sub andy()
  Dim rng As Range, lngRow As Long
  
  With Sheets("Tabelle1")
    For Each rng In .Range(cstrRange)
      If rng = "" Then
        lngRow = rng.Row
        Exit For
      End If
    Next
    If lngRow > 0 Then Sheets("Tabelle2").Range("A3:H5").Copy .Cells(lngRow, 2)
  End With
  
End Sub

Gruß Sepp

Anzeige
AW: Kopierte Zellen ab A66 einfügen
21.05.2009 22:05:59
Andy
Vielen lieben Dank Joseph. 99% erreicht und läuft. Jetzt sollte nur noch eine leere Zelle zwischen den eingefügten Texten bleiben.
Für mich als Laie ist natürlich Angenehm, das ich den Zellbereich sehr einfach ändern kann.
Noch einmal : Danke Dir
AW: Kopierte Zellen ab A66 einfügen
22.05.2009 07:37:19
Josef
Hallo Andy,
dann ändere das " lngRow = rng.Row " in dieses " lngRow = rng.Row + 1 "
Gruß Sepp

AW: Kopierte Zellen ab A66 einfügen
22.05.2009 08:33:12
Andy
Guten Morgen Joseph. Danke für Deine Antwort.
Leider geht das mit " lngRow = rng.Row " in dieses " lngRow = rng.Row + 1 " nicht.
Mit IngRow = rng.Row beginnt das einfügen am ersten bestimmten Platz (C66:C69) und fügt den nächsten Textblock bei C 70 ein.
Mit IngRow = rng.Row + 1 beginnt das einfügen eine Zelle weiter Unten (C67:C70) was weiter nicht schlimm währe. Aber der nächste Texblock fügt sich wieder in (C67:C70) ein.
Anzeige
AW: Kopierte Zellen ab A66 einfügen
22.05.2009 15:53:04
Josef
Hallo Andy,
du musst die Bereiche jeweisl um eine Zeile nach oben verschoben angeben!
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Const cstrRange As String = "C21:C52,C65:C109,C121:C167,C179:C223"
Sub andy()
  Dim rng As Range, lngRow As Long
  
  With Sheets("Tabelle1")
    For Each rng In .Range(cstrRange)
      If rng = "" Then
        If rng.Offset(1, 0) = "" And Not Intersect(rng.Offset(1, 0), .Range(cstrRange)) Is Nothing Then
          lngRow = rng.Row + 1
          Exit For
        End If
      End If
    Next
    If lngRow > 0 Then Sheets("Tabelle2").Range("A3:H5").Copy .Cells(lngRow, 2)
  End With
  
End Sub

Gruß Sepp

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige