MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 20.01.2018, 19:18   #1
sombreroeistee
MOF User
MOF User
Standard VBA - VBA Bereich clearen

Hallo,

ich habe folgende Problematik/Fragestellung:

Ich möchte durch einen Code die Werte von Spalten in Abhängigkeit von ihrem Titel von einer Arbeitsmappe in eine andere kopieren (Beispieldateien im Anhang).

Dabei beziehe ich mich auf die "UsedRange". Folgende mögliche Problematik sehe ich allerdings dabei:

Sagen wir ich habe in Spalte A, B,C jeweils Daten die bis in die Zeile 4 oder 5 gehen. Dann wird der Code die kopierten Daten ab Zeile 5 einfügen. Alles soweit gut. Würde allerdings der User aus Versehen in Zelle C8 eine Zahl eintragen würden die Datein ja dadurch ab Zeile 9 eingefügt werden weil sich die UsedRange geändert hat.

Deshalb möchte ich immer die Daten unter meiner eigentlichen Tabelle löschen, weiss aber nicht wie ich das automatisieren kann bzw. wie VBA erkennen kann, dass C8 eigentlich nicht zur "UsedRange" gehört.

Hier der Code:

Code:

Sub New_extract_columns222()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Obst")
    Dim ws_copy1 As Workbook
    Dim ws_copy As Worksheet
    Set ws_copy1 = ThisWorkbook.Application.Workbooks.Open("C:UsersMichael KlingDocumentsMoney &BerufSkills und WissenExcelVBANachhilfe ManuelLHBeispieldatei2.xlsx")
    Set ws_copy = ws_copy1.Worksheets("Obst_copy")

    
    Dim iRunner As Integer
    Dim sSpalte As String
    Dim jRunner As Integer
    Dim jSpalte As String

    Dim END_ROW As Long

    Dim LAST_ROW As Long
    Dim copy_area  As Range
    Dim rlast As Integer
    Dim rlast2 As Integer
    Dim rlast_clear As Integer
    Dim clear_range As Range
    
'
    rlast = ws_copy.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    rlast2 = ws.UsedRange.SpecialCells(xlCellTypeLastCell).Row
  
    
    
    rlast_clear = ws.Cells(300000, 1).End(xlUp).Offset(1, 0).Row
    Set clear_range = ws.Range(ws.Cells(rlast_clear + 2, 1), ws.Cells(Cells(rlast_clear).End(xlDown).Row, 500)) 'Problem: Wenn die Spalte A unten mehr als 2 Leerzellen hat Als Lösung: Vielleicht doch als Tabelle formatieren / oder Spalte nehmen die bisher zu 100% voll war
    clear_range.ClearContents
    
    
    
    For iRunner = 1 To 3
        sSpalte = ws.Cells(1, iRunner).Name.Name
        Debug.Print (sSpalte)
            For jRunner = 1 To 3
            jSpalte = ws_copy.Cells(1, jRunner).Name.Name
            Debug.Print (jSpalte)
            Set copy_area = ws_copy.Range(ws_copy.Cells(2, jRunner), ws_copy.Cells(rlast, jRunner))
                If jSpalte = sSpalte Then
                copy_area.Copy (ws.Cells(rlast2 + 1, iRunner))
                End If
                
            Next
    Next
        


        
End Sub
Angehängte Dateien
Dateityp: xlsx Beispieldatei2.xlsx (8,1 KB, 2x aufgerufen)
Dateityp: xlsm Beispieldatei1.xlsm (12,7 KB, 2x aufgerufen)

Geändert von sombreroeistee (20.01.2018 um 19:23 Uhr).
sombreroeistee ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.01.2018, 21:23   #2
Fennek11
MOF Profi
MOF Profi
Standard

X-Post VBA-Forum
Fennek11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 21.01.2018, 10:05   #3
Fennek11
MOF Profi
MOF Profi
Standard

Hallo Michael,

warum wird hier mit "UsedRange" gearbeitet und nicht geprüft, ob die Datensätze vollständig sind?

mfg
Fennek11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 21.01.2018, 14:09   #4
sombreroeistee
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hier der Link zum anderen Threat: http://www.vba-forum.de/forum/View.a...reichs_clearen

Das mit der Vollständigkeit ist naturlich eine berechtigte Frage. So SOLLTE es eigentlich sein, muss aber mit dem Arbeiten was mir vorliegt
sombreroeistee ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.