Office: (Office 2010) VBA

Helfe beim Thema VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe ein Problem: Ich möchte gerne ein Tabellenblatt mit einem Makro bearbeiten. Dort sind mehrere hundert Daten vorhanden. Wenn in Spalte... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Nordlicht_86, 17. Mai 2016.

  1. VBA


    Hallo,

    ich habe ein Problem:

    Ich möchte gerne ein Tabellenblatt mit einem Makro bearbeiten. Dort sind mehrere hundert Daten vorhanden.
    Wenn in Spalte A kein Wert steht, dann sollen die Zeilen A-Q gelöscht werden (Spalte R etc. werden noch benötigt) und zudem sollen die restlichen Zeilen nach oben aufrücken.

    Leider bekomme ich das nicht so recht hin. Dies ist mein bisheriger Versuch:


    Dim rng As Range
    On Error Resume Next
    Set rng = Sheets("Tabelle1").Range("A5:A1000").SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rng Is Nothing Then rng.EntireRow.delete
    Set rng = Nothing


    Der Code soll aber nicht die ganze Zeile löschen, sondern nur den Inhalt der betreffenden Zellen (A-Q), da ich die hinteren Spalten noch brauche.
    Wie kann ich also "entireRow" eingrenzen auf bestimmte Zellen und gleichzeitig dafür sorgen, dass der Rest hochrutscht?

    Vielen Dank schonmal :-)

    Torsten

    :)
     
    Nordlicht_86, 17. Mai 2016
    #1
  2. Hallo Torsten,

    so?
    Code:
    Grüße
    EarlFred
     
    EarlFred, 19. Mai 2016
    #2
  3. Passt super, vielen Dank für die schnelle Hilfe :-)
     
    Nordlicht_86, 19. Mai 2016
    #3
  4. VBA

    Hallo Torsten,

    Schau dir mal=intersect() an.

    Option Explicit

    Sub machs()
    Dim rng As Range
    Dim rngToDelete As Range
    On Error Resume Next
    Set rng = Sheets("Tabelle1").Range("A5:A1000").SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rng Is Nothing Then
    Set rngToDelete = Intersect(rng.EntireRow, Range("A1:Q1000"))
    rngToDelete.Delete shift:=xlUp
    Set rng = Nothing
    End If
    End Sub


    ransi
     
    ransi, 19. Mai 2016
    #4
  5. Hallo EarlFred,

    ein kleines Problem besteht doch noch:

    Ich habe in den hinteren Spalten (ab Spalte R) Wenn-Funktionen stehen, die sich auf die Spalten A-Q teilweise beziehen (um Werte zu verketten).
    Leider geht bei diesen der Bezug verloren, wenn ich die Makro-Funktion anwende.

    Am besten wäre es, wenn die übrig gebliebenen Zeilen nach oben rutschen und die Wenn-Funktionen ab Spalte R weiterhin funktionieren würden.

    Hast du dafür ne Lösung?

    Gruß Torsten
     
    Nordlicht_86, 19. Mai 2016
    #5
  6. Hallo Torsten

    anstelle (z. B.)
    Code:
    verwendest Du:
    Code:
    (solange sich die Formel auf die gleiche Zeile beziehen soll, in der sie selbst steht)

    Grüße
    EarlFred
     
    EarlFred, 19. Mai 2016
    #6
  7. Nochmals Danke...hat auch geholfen :-)

    Gruß Torsten
     
    Nordlicht_86, 19. Mai 2016
    #7
  8. VBA

    Hallo,

    leider gibt es wieder ein Problem.

    Jetzt sollen die gefundenen Werte nicht mehr gelöscht werden, sondern in einen neuen Tabellenreiter kopiert werden.

    Da dachte ich mir folgendes (in Bezug auf den vorherigen Code):



    Dim gefunden As Range
    Zeile_Suche = 5

    Do
    Set gefunden = Worksheets("Historie").Columns(18).Find(what:=Worksheets("neue Daten").Cells(Zeile_Suche, 18), LookIn:=xlValues, lookat:=xlWhole)

    If Not gefunden Is Nothing Then
    Intersect(gefunden.EntireRow, Worksheets("neue Daten").Range("A:Q")).copy
    Worksheets("gelöscht").Range("A:Q").PasteSpecial Paste:=xlValues
    Zeile_Suche = Zeile_Suche + 1

    Else
    Zeile_Suche = Zeile_Suche + 1

    End If

    Loop Until Zeile_Suche = 200



    Leider meckert Excel da immer: "Methode 'Intersect' für das Objekt '_Global' ist fehlgeschlagen.

    Ich möchte einfach nur, dass wenn ein neuer Wert übereinstimmt mit der Historie, dass dann die Spalten A:Q der gefundenen Zeile in einen neuen Reiter kopiert werden.

    Kann mir noch wer helfen?

    Beste Grüße Torsten
     
    Nordlicht_86, 19. Mai 2016
    #8
  9. Hallo Torsten,


    Code:
    Der eine Bereich bezieht sich auf das Worksheet "Historie", der andere auf das Worksheet "neue Daten". Aus diesen Bereichen kannst Du keine Schnittmenge bilden.

    Hast Du ransis Antwort übersehen, oder warum ist sie Dir nichtmal ein kleines "Dankeschön" wert? Hat ihm sicher auch Arbeit gemacht.

    Grüße
    EarlFred
     
    EarlFred, 19. Mai 2016
    #9
  10. Danke für den Hinweis...jetzt läufts erstmal...bis der nächste Änderungswunsch kommt ;-)

    ...und natürlich auch vielen Dank an ransis, das hatte ich leider vergessen *rolleyes.gif* *frown.gif*

    Viele Grüße
    Torsten
     
    Nordlicht_86, 19. Mai 2016
    #10
Thema:

VBA

Die Seite wird geladen...
  1. VBA - Similar Threads - VBA

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden