Excel 2016 Makros: Button zum Löschen bestimmter Zeilen?

Hey Leute,

ich arbeite derzeit intensiver an einer Excel-Tabelle, wodurch ich mich wahrscheinlich noch öfter mit Fragen rund um diese Tabelle melden werde, wenn ich mal nicht weiter weiß :D. Nun möchte ich diese Tabelle im nächsten Schritt mit Makros bereichern. Leider hatte ich bislang nahezu nichts mit Makros am Hut und benötige aus diesem Grund Hilfe.

Die dargestellte Tabelle bzw. der Ausschnitt soll zukünftig projektbezogen verwendet werden. Es handelt sich dabei um eine Funktionsliste, in der ich in Spalte B Bauteile auswähle, die ich in dem jeweiligen Projekt benötige. Da jedes Projekt individuell ist, habe ich in einigen Projekten mal 20 Bauteile, mal 50. Also nie ein im Voraus festgelegter Wert. Da in einem Projekt mehrere Anlagen vorhanden sein können, die jeweils so eine eigene Funktionsliste benötigen, möchte ich eine Schaltfläche implementieren, die mit einem Makro versehen ist. Durch Anklicken dieser Schaltfläche sollen Zeilen (nicht nur die Inhalte, sondern die gesamte Zeile) in einem bestimmten Bereich (vom dritten Bauteil bis zum letzten Bauteil) gelöscht werden. In dem Bildbeispiel z.B. würde ich wollen, dass die Zeilen 11 bis 17 gelöscht werden. Da es in einem anderen Projekt aber z.B. 20 Bauteile geben kann, müsste ich Zeile 11 bis 30 löschen. Die Ergebniszeile ganz am Ende ist unabhängig von der Tabelle und soll immer bestehen bleiben. Kann mir jemand bei dem Code helfen, um so ein "dynamisches Löschen" durch eine Schaltfläche zu ermöglichen? Unabhängig davon, wie viele Bauteile ich auswähle, soll immer nur bis zum letzten Bauteil gelöscht werden. :)

Bild zum Beitrag
Microsoft, Microsoft Excel, Microsoft Office, programmieren, Makro, VBA, Formel, Tabellenkalkulation, Excel-Formel, Office 365, Excel 2016
Excel VBA Makro Code?

Guten Tag zusammen,

Undzwar geht es darum das ich ein Makro erstellt habe der sieht so aus :

Sub Makro1()

' Makro1 Makro

'

   

  Range("D3").Select

  Application.CutCopyMode = False

  Selection.Copy

  Sheets("1M").Select

  Range("C6").Select

  ActiveSheet.Paste

  Sheets("Tabelle1").Select

  Range("J3").Select

  Application.CutCopyMode = False

  Selection.Copy

  Sheets("1M").Select

  Range("C7").Select

  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

    :=False, Transpose:=False

  Sheets("Tabelle1").Select

  Range("R3").Select

  Application.CutCopyMode = False

  Selection.Copy

  Sheets("1M").Select

  Range("C13").Select

  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

    :=False, Transpose:=False

  Range("D26").Select

  Application.CutCopyMode = False

  Selection.Copy

  Sheets("Tabelle1").Select

  Range("H3").Select

  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

    :=False, Transpose:=False

End Sub

Das Problem ist jetzt das ich möchte das er in der Excel Tabelle jede Zeile mit diesem Makro ausfüllt sprich er soll bei Zeile 3 anfangen und bis 322 weiterführen ich habe 2 Mappen 1. "Tabelle1" und "1M"

Tabelle1 hatt die 322 Zeilen aber er springt nicht zur jeder Zeile und die Zelle "D3" , "J3", "R3", "H3" sollten dann auf die nächste Zeile Springen Sprich "D4", "J4" , "R3" , "H4" wenn er auch in der 4 Zeile ist

die restlichen Zellen sollen festbleiben zugehörig zu Mappe "1M"

ich hoffe es ist verständlich was ich meinte :'D

Microsoft Excel, Makro, VBA, Code, Datenbank, VBA Excel
Makro mit VBA in Excel zerschossen, brauche dringend Hilfe!?

Hallo zusammen,

vorab schonmal, nein ich habe hier absolut 0% Ahnung hiervon und brauche dringend Hilfe!

Ich habe auf der Arbeit bei einer wichtigen Excel Datei eine neue Spalte eingefügt, was dafür gesorgt hat, dass eine wichtige Spalte rechts davon weiter nach rechts verschoben wurde um eine Zelle.

In dieser Spalte wurden Enddatum eingetragen und diese wurden mit einem Makro über VBA Absteigend von jüngerem Datum oben, nach späteren Datum nach unten hin sortiert.

Nachdem ich die neue Spalte zugefügt habe, funktionierte eins nach dem anderen nicht mehr richtig und ich war so dumm zu versuchen das Makro minimal anzugleichen, sodass es funktioniert und habe es dann getestet.

Dadurch habe ich es nur schlimmer gemacht...

Zudem kann ich jetzt nicht mal mehr in der Tabelle scrollen, zumindest in diesem Reiter, in einem anderen Reiter unten, kann ich scrollen in der Datei.

Der Text in VBA Stand jetzt:

Sub Sortieren()

'

' Sortieren Makro

'

'

  Rows("3:500").Select

  Range("B3").Activate

  ActiveWorkbook.Worksheets("Übersicht").Sort.SortFields.Clear

  ActiveWorkbook.Worksheets("Übersicht").Sort.SortFields.Add Key:=Range( _

    "H4:Hl34"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

    xlSortNormal

  With ActiveWorkbook.Worksheets("Übersicht").Sort

    .SetRange Range("A3:L500")

    .Header = xlYes

    .MatchCase = False

    .Orientation = xlTopToBottom

    .SortMethod = xlPinYin

    .Apply

  End With

  ActiveWindow.SmallScroll Down:=3

  ActiveSheet.Range("$A$3:$L$97").AutoFilter Field:=12, Criteria1:="="

  ActiveWindow.SmallScroll Down:=-12

End Sub

Bild zum Beitrag
Microsoft Excel, programmieren, Makro, VBA, VBA Programmierung, VBA Makro, VBA-Code, VBA Excel, makros erstellen
Excel VBA: Tabellenblätter bei gewissen Zellenwert ausblenden?

Hallo Zusammen,

Ich will mittels VBA ein Excel modifizieren, damit möglichst wenige Tabellenblätter angezeigt werden. In einem Tabellenblatt (z.B. "Auswahl") habe ich die Zellen C62, C88 und C114, die jeweils ein spezielles Tabellenblatt anzeigen sollen. Jedoch gibt es im Moment nur LZF-Meldungen.

Es soll jeweils bei "Yes" nichts angezeigt, bei "No" die entsprechende Tabelle eingeblendet werden.

Ansonsten sollen die "nicht betroffenen" Tabellen ausgeblendet bleiben

Hier der Code im Worksheet "DieseArbeitsmappe":

Private Sub Worksheet_Open()

'Beim Öffnen des Excels die betroffenen Blätter ausblenden
    ThisWorkbook.Worksheets("Tabelle4").Visible = False 
    ThisWorkbook.Worksheets("Tabelle5").Visible = False
    ThisWorkbook.Worksheets("Tabelle6").Visible = False
    
End Sub

In Blatt "Auswahl" (Tabelle7) habe ich folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Range)

   

‘Hier sind vorher noch andere IF-Regeln hinterlegt, die nur Reihen in Tabelle7 ein/ausblenden

   

    If Range("C62").Value = "No" Then 'Tabellenblätter einblenden, sobald in der jeweiligen Zelle "No" ausgewählt wird

        ThisWorkbook.Worksheets("Tabelle6").Visible = True

       

        Else

        ThisWorkbook.Worksheets("Tabelle6").Visible = False ‘Hier erhalte ich jeweils ein LZF 9?

    End If

   

    If Range("C88").Value = "No" Then

        ThisWorkbook.Worksheets("Tabelle5").Visible = True

       

        Else

        ThisWorkbook.Worksheets("Tabelle5").Visible = False ‘Hier erhalte ich jeweils ein LZF 9?

    End If

   

    If Range("C114").Value = "No" Then

        ThisWorkbook.Worksheets("Tabelle4").Visible = True

       

        Else

        ThisWorkbook.Worksheets("Tabelle4").Visible = False ‘Hier erhalte ich jeweils ein LZF 9?

    End If

   

End Sub

Weshalb gibt es jeweils einen Fehler und wie kann ich diesen am einfachsten beheben?

Vielen Dank, Michael

Microsoft Excel, programmieren, Makro, VBA
Excel Makro, PDF versenden, Anhang klappt nicht?

Hallo, ich würde gerne eine Rechnung mit einem Makro erstellen. Soweit klappt das auch und die Mail öffnet sich auch, aber diese wird nicht als Anhang hinzugefügt. Ich komme leider nicht drauf. Ich denke, es liegt daran, dass er die Datei nicht findet, aber ich wüsste keinen Lösungsansatz. Hier der Code:

Dim Result As VbMsgBoxResult

Sub RechnungsnrUndDrucken()

Sheets("Rechnung_Video").Select

[D15] = [D15] + 1 'Rechnungsnummer 1 hochzählen

  Dim sCC As String

  Dim sName As String

  Dim sText As String

  Dim sObject As String

  Dim sCompany As String

  Dim sRefNr As String

  Dim sTempFileName As String

   

  If (CStr(ThisWorkbook.ActiveSheet.Name) = "Rechnung") Then

    Result = MsgBox("Rechnung fertig?", vbApplicationModal Or vbQuestion Or vbYesNo)

    If Result = vbNo Then Exit Sub

  End If

Const DateiPfad = "C:\Temp\"

  Dim DateiName As String

  

  DateiName = DateiPfad & Range("C15") & Range("D15") & ".pdf"

  Range("A1:F54").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

    DateiName, Quality:=xlQualityStandard, _

 IncludeDocProperties:=True, _

  IgnorePrintAreas:=False, _

  OpenAfterPublish:=False

      

Dim Nachricht As Object, OutApp As Object

Dim AWS As String

Set OutApp = CreateObject("Outlook.Application")

AWS = strFileName

'InitializeOutlook = True

Set Nachricht = OutApp.CreateItem(0)

With Nachricht

.Subject = "" & Range("A1") & "_" & Range("C15") & Range("D15")

.GetInspector.display

'.Attachments.Add ("C:\Temp\" & Range("C15") & Range("D15") & ".pdf")

End With

Set OutApp = Nothing

Set Nachricht = Nothing

End Sub

Computer, Microsoft Excel, E-Mail, Makro
VBA Dateiauswahl - Bei Abbruch Laufzeitfehler 5, jemand Ideen?

Hallo zusammen,

was müsste ich hinzufügen, um den Laufzeitfehler 5 zu umgehen? Wenn ich den VBA-Code ausführe, öffnet sich das Fenster für den Import von DAT-Dateien. Drücke ich auf Abbrechen, erscheint der Laufzeitfehler 5. Vermerkt wird der Code "Set F = fs.GetFolder(strPfad)". Wo und welchen Code müsste ich hinzufügen, um den Fehler zu beheben? Vielen Dank im Voraus. :)

Sub Schaltfläche1_Klicken()
'
'
'*** Öffnen von DAT-Dateien
Dim strText As String, strFilter As String

strText = "Bitte eine Auswertung Auswählen"
strFilter = "DAT-Dateien (*.DAT), *.DAT"""
strAuswahl = Application.GetOpenFilename(strFilter, 1, strText)
strPfad = Pfad_ermitteln(strAuswahl)
'
Set fs = CreateObject("Scripting.FileSystemObject")
Set F = fs.GetFolder(strPfad)
Set fc = F.Files

If ActiveSheet Is Nothing Then Workbooks.Add
For Each File In fc
    Zeile = Cells(65000, 1).End(xlUp).Row + 2
    strEinfügen = Cells(Zeile, 1).Address
    strAuswahl = File.Path

    'Einfügen
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & strAuswahl _
        , Destination:=Range(strEinfügen))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
  End With
  Range(strEinfügen).QueryTable.Delete
Next
End Sub
_______________________________

 Function Pfad_ermitteln(ByVal strAuswahl As String) As String
 
 For i = Len(strAuswahl) To 1 Step -1
    If Mid(strAuswahl, i, 1) = "\" Then
        Pfad_ermitteln = Left(strAuswahl, i - 1)
        Exit Function
    End If
Next
End Function
Computer, Microsoft Excel, Microsoft Office, Makro, VBA, Code

Meistgelesene Beiträge zum Thema Makro