Excel Macro erstellen

Diskutiere und helfe bei Excel Macro erstellen im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo zusammen, ich habe nun etliche Foren durchlesen und kann leider keine Lösung für mein Problem finden. Ich würde gerne ein Macro erstellen... Dieses Thema im Forum "Microsoft Office" wurde erstellt von Björn6077, 4. Oktober 2016.

  1. Björn6077
    Björn6077 Gast

    Excel Macro erstellen


    Hallo zusammen,


    ich habe nun etliche Foren durchlesen und kann leider keine Lösung für mein Problem finden. Ich würde gerne ein Macro erstellen welches mir die Zeile löscht bei der von Antwort 1 (Zeile "E") bis Antwort 5 (Zeile "I") jedes mal "Nein" steht. Wenn in einer der Antworten "Ja" steht soll die Zeile bestehen bleiben.


    Mein bisheriges Macro lautet:


    Option Explicit

    Sub test()
    Dim i As Integer
    Dim n As Integer
    i = Cells(Rows.Count, 1).End(xlUp).Row
    For n = 1 To i
    If Cells(n, 5-9).Value = "Nein" Then
    Rows(n).Select
    Selection.Delete Shift:=xlUp
    End If
    Next
    End Sub



    Leider kommt dann immer "Error". Wenn ich das Macro auf eine Spalte anwende wie z.B.,


    Option Explicit

    Sub test()
    Dim i As Integer
    Dim n As Integer
    i = Cells(Rows.Count, 9).End(xlUp).Row
    For n = 1 To i
    If Cells(n, 5).Value = "Nein" Then
    Rows(n).Select
    Selection.Delete Shift:=xlUp
    End If
    Next
    End Sub


    dann funktioniert es und löscht mir alle Zeilen bei der in Spalte 5 "Nein" steht.



    Ich hoffe mir kann irgendjemand weiterhelfen. Langsam raucht mein Kopf^^
     
  2. Andreas Killer Win User

    Excel Macro erstellen

    die Zeile löscht bei der von Antwort 1 (Zeile "E") bis Antwort 5 (Zeile "I") jedes mal "Nein" steht.
    Bitte? In Excel haben Zeilen eine Nummer, die Spalten haben einen Buchstaben!

    Naja, ich denke mir mal Zeilen und Dein Denkfehler liegt darin das Du von oben nach unten löscht, das geht nicht.

    Eine FOR Schleife zählt generell immer weiter, egal ob Du die Zeile gelöscht hast oder nicht.

    Wenn also der Zähler der FOR Schleife auf 2 steht und Du die 2te Zeile löscht, dann "rutscht" die 3te Zeile nach oben und wird zur 2ten Zeile.

    D.h. im nächsten Durchlauf steht der Zähler der FOR Schleife auf 3, d.h. Dein Code übergeht die jetzige 2te Zeile.

    Es gibt 2 Lösungen für das ganze, entweder Du löscht von unten nach oben:

    Sub Test()

    Dim i As Long

    For i = 5 To 1 Step -1

    If Range("A" & i) = "Nein" Then

    Range("A" & i).EntireRow.Delete

    End If

    Next

    End Sub

    Oder Du suchst zuerst alle Zellen und merkst Dir diese (man vereinigt sie mit UNION) und dann löscht man alle auf einmal. Das hat z.B. den Vorteil das man eine FOR EACH Schleife verwenden kann:

    Sub Test()

    Dim R As Range, All As Range



    For Each R In Range("A1:A5")

    If R = "Nein" Then

    If All Is Nothing Then

    Set All = R

    Else

    Set All = Union(All, R)

    End If

    End If

    Next

    If Not All Is Nothing Then All.EntireRow.Delete

    End Sub

    Das läuft schon mal schneller. Noch besser wird es wenn man anstatt jede Zelle abzuklappern nach den betreffenden Inhalten sucht, ließ Dir mal die Hilfe zu Range.Find durch.

    Der Vorteil dabei ist das man auch Wildcards bei der Suche einsetzen kann und noch div. andere Dinge auch. Wird dann aber komplexer. Daher schreibt man sich mal eine Routine mit der man das vereinfacht, speichert sich die ab und gut is.

    Außerdem kann man nicht nur in einer Spalte, sondern in mehreren suchen und die Ergebnisse kombinieren, dazu braucht man dann INTERSECT.

    Andreas.

    Sub Test()

    Dim All As Range



    Set All = FindAll(Range("A1:A5"), "Nein")

    If Not All Is Nothing Then All.EntireRow.Delete

    End Sub

    Private Function FindAll(ByVal Where As Range, ByVal What, _

    Optional ByVal After As Variant, _

    Optional ByVal LookIn As XlFindLookIn = xlValues, _

    Optional ByVal LookAt As XlLookAt = xlWhole, _

    Optional ByVal SearchOrder As XlSearchOrder = xlByRows, _

    Optional ByVal SearchDirection As XlSearchDirection = xlNext, _

    Optional ByVal MatchCase As Boolean = False, _

    Optional ByVal SearchFormat As Boolean = False) As Range

    'Find all occurrences of What in Where (Windows version)

    Dim FirstAddress As String

    Dim c As Range

    'From FastUnion:

    Dim Stack As New Collection

    Dim Temp() As Range, Item

    Dim i As Long, j As Long

    If Where Is Nothing Then Exit Function

    If SearchDirection = xlNext And IsMissing(After) Then

    'Set After to the last cell in Where to return the first cell in Where in front if _

    it match What

    Set c = Where.Areas(Where.Areas.Count)

    'BUG in XL2010: Cells.Count produces a RTE 6 if C is the whole sheet

    'Set After = C.Cells(C.Cells.Count)

    Set After = c.Cells(c.Rows.Count * CDec(c.Columns.Count))

    End If

    Set c = Where.Find(What, After, LookIn, LookAt, SearchOrder, _

    SearchDirection, MatchCase, SearchFormat:=SearchFormat)

    If c Is Nothing Then Exit Function

    FirstAddress = c.Address

    Do

    Stack.Add c

    If SearchFormat Then

    'If you call this function from an UDF and _

    you find only the first cell use this instead

    Set c = Where.Find(What, c, LookIn, LookAt, SearchOrder, _

    SearchDirection, MatchCase, SearchFormat:=SearchFormat)

    Else

    If SearchDirection = xlNext Then

    Set c = Where.FindNext(c)

    Else

    Set c = Where.FindPrevious(c)

    End If

    End If

    'Can happen if we have merged cells

    If c Is Nothing Then Exit Do

    Loop Until FirstAddress = c.Address

    'FastUnion algorithm © , 2011:

    'Get all cells as fragments

    ReDim Temp(0 To Stack.Count - 1)

    i = 0

    For Each Item In Stack

    Set Temp(i) = Item

    i = i + 1

    Next

    'Combine each fragment with the next one

    j = 1

    Do

    For i = 0 To UBound(Temp) - j Step j * 2

    Set Temp(i) = Union(Temp(i), Temp(i + j))

    Next

    j = j * 2

    Loop Until j > UBound(Temp)

    'At this point we have all cells in the first fragment

    Set FindAll = Temp(0)

    End Function
  3. Björn6077 Win User

    Excel Macro erstellen

    Danke, bin durch dich schon ein Schritt weiter :)
  4. Suchwas Win User

    Beim Importieren von Textdaten werden führende Nullen bei Zahlen nicht eingelesen.

    Hallo Andreas,

    Vielen Dank für Deine Mühe. Es tut mir leid, dass das mit dem FileHoster nicht geklappt hat. Es ist in Ordnung so wie Du die Datei nachgebildet hast.

    Mit einem Macro habe ich das Einlesen noch nicht versucht.

    Ich bin davon ausgegangen, dass die Importierfunktion von Excel funktionieren müßte. Offensichtlich tut sie das nicht. Anscheinend ist an Excel etwas faul.

    Ich versuche das mal mit dem Macro. Vielen Dank.

    Ich habe das mit dem Macro ausprobiert. Es funktioniert einwandfrei. Das bedeudet, dass in den Office-Programmen Excel ein Fehler in der Importierprocedure enthalten ist. Interresiert das keinen von Microsoft?

    Grüße Jürgen Rieger
  5. Claus Busch Win User

    Excel Tabelle mit VBA Code in Powerpoint einbinden

    Hallo Berthold,

    in einer Folie => Einfügen => Objekt => Microsoft Excel Macro-Enabled Worksheet.

    Oder Einfügen => Objekt => Aus Datei.

    Beides sind aber nicht so einfach wie in Excel zu bearbeiten. Zum Bearbeiten musst du einen Rechtsklick auf das Objekt machen => Microsoft Excel Macro-Enabled Worksheet bearbeiten.

    Claus
  6. Christian Mo Win User

    Access Eingabeformular nur mit relevanten Spalten

    Hallo,

    vielen Dank schon mal für die Antwort.

    Leider arbeite ich nun das erste Mal mit Formularen und mit VBA in Access. Ich habe schon einige Erfahrung in Excel, jedoch weiß ich bei Access nicht genau wie ich das oben beschrieben bewerkstellige.

    1. Was ist ein Einzelblattformular. Ich habe es mit dem Formular-Assistenten erstellt ... Wie kann ich erkennen, ob es das ist?

    2. Wie würde ich vorgehen um ein Macro für ein Feld zu erstellen?

    Gruß,

    Christian
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Excel Macro erstellen - Microsoft Office

Die Seite wird geladen...

Excel Macro erstellen - Similar Threads - Excel Macro erstellen

Forum Datum

Excel Tabellenblätter untereinander kopieren mit Macro

Excel Tabellenblätter untereinander kopieren mit Macro: Hallo,in 2014 hat bereits jemand die gleiche Frage gestellt und eine tolle Antwort bekommen.Da ich jedoch kein Excel oder Makro Profi bin, wollte ich fragen, ob mir jemand etwas genauer den...
Microsoft Office 16. März 2023

VBA und Macro

VBA und Macro: Hallo liebe Community!ich habe eine Frage und zwar: Wo liegt ist der unterschied zwischen VBA und Macro?Also ich habe es so verstanden, dass man VBA verwendet, wenn man sozusagen den ganzen...
Microsoft Office 19. August 2021

CDO VBA Excel Macro

CDO VBA Excel Macro: Hello Community! I am testing a excel macro which suppose to send emails. It was done with CDO which access SMTP server. But I am getting the following error message: "The tronsport failed to...
Microsoft Office 16. April 2020

Benötige Hilfe bei Excel Macro

Benötige Hilfe bei Excel Macro: Hallo geehrte Community, ich brauche wieder mal eure Hilfe. Folgende Situation: Ich habe zwei Excel Dateien. Eine Datei ist komplett voller (wirrer) Daten, andre ist komplett leer. Aufgrund...
Microsoft Office 19. September 2019

Excel macro run when save file

Excel macro run when save file: hello, I need one vba code, that will do this: I open today the file, change what I need and when I press to save the file, it should write the date in the sheet. Tomorrow when I open the...
Microsoft Office 13. Februar 2018

Excel 2007 macro schliessen ohne speichern

Excel 2007 macro schliessen ohne speichern: Hallo Mein Problem: Habe Betriebssystem Windows 10 und habe mir Office 2007 aufgespielt. Nun stürzt Excel ständig ab wenn ich eine Datei mit folgenden Macro Sub Zurück() With...
Microsoft Office 29. Januar 2018

Macro Signing

Macro Signing: Hello We are currently trying to improve the Security of our Office Products. One step in this will be enabling Digital Signage on all of our Macros. There's the issue, we have currently...
Microsoft Office 22. November 2016
Excel Macro erstellen solved
  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.