Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestehende Formel soll nicht von Makro gelöscht

Forumthread: Bestehende Formel soll nicht von Makro gelöscht

Bestehende Formel soll nicht von Makro gelöscht
19.10.2017 11:53:08
Makro
Hallo zusammen,
ich habe ein Makro programmiert (siehe Beispielsdatei) und habe in der Spalte E eine Indexformel hinterlegt. Diese Indexformel wird allerdings nachdem ich das Makro durchlaufen lasse, immer gelöscht. Wie kann man das umgehen?
Hier meine Beispielsdatei:https://www.herber.de/bbs/user/117076.xlsm
Vielen Dank für eure Hilfe!
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bestehende Formel soll nicht von Makro gelöscht
19.10.2017 12:36:47
Makro
Hallo,
Wie kann man das umgehen?
indem du nur die Zellen mit Konstanten löschst.
siehe specialcells
Gruß
Rudi
AW: Bestehende Formel soll nicht von Makro
19.10.2017 12:44:54
Makro
Hi Rudi,
danke für deine Antwort! Ich kann dir allerdings nicht ganz folgen...Könntest du mir das ein wenig ausführlicher erklären?
Viele Grüße
arek
Anzeige
AW: Bestehende Formel soll nicht von Makro
19.10.2017 12:50:21
Makro
hallo,
ich kann deine Datei nicht herunterladen. Deshalb als Schema:
Bereich.specialcells(xlcelltypeconstants).clear
Gruß
Rudi
AW: Bestehende Formel soll nicht von Makro
19.10.2017 12:53:55
Makro
Hi Rudi,
das tut mir leid! Hier wäre mein Makro als Text:
Option Explicit
Dim wkb As Workbook
Dim wksdata As Worksheet
Dim wksDest As Worksheet
Dim wkbData As Workbook
Sub Update_Button()
Dim llastr As Long
Dim ilasts As Integer
Dim z As Long
Dim s As Integer
Dim llastdest As Long
Dim Pfad As String
Dim Dateiname As String
Dim iRow As Long
Pfad = "C:\Users\feigeral\Desktop\Hours Booking\" 'Pfad, unter welchem die Stundenlisten  _
liegen
Dateiname = Dir(Pfad & "*.xlsm")
Initialisiere 'Funktion Initialisiere siehe unten
wksDest.UsedRange.Offset(1, 0).Value = ""
Do While Dateiname  "" 'mittels While Schleife werden Stundenlisten durchlaufen
Set wkbData = Workbooks.Open(Filename:=Pfad & Dateiname)
Set wksdata = wkbData.Sheets("Hours")
llastr = BestimmeLetzteZeile(wksdata, 2)  'letzte Zeile erstellen
ilasts = BestimmeLetzteSpalte(wksdata, 2) 'letzte Spalte bestimmen
llastdest = BestimmeLetzteZeile(wksDest, 1) + 1
For z = 5 To llastr   'Alle Zeilen ab Zeile 5 werden durchlaufen
For s = 3 To ilasts   'Alle Spalten ab Spalte C werden durchlaufen
If wksdata.Cells(z, s).Value  "" Then
'Zeile kopieren und anschließender Übergang zur nächsten Stundenliste
wksDest.Cells(llastdest, 1).Value = wksdata.Cells(2, s).Value  'Belegdatum
wksDest.Cells(llastdest, 2).Value = wksdata.Cells(2, s).Value  ' _
Buchungsdatum
wksDest.Cells(llastdest, 3).Value = wksdata.Cells(1, 1).Value  ' _
Kostenstelle
wksDest.Cells(llastdest, 4).Value = wksdata.Cells(1, 3).Value  ' _
Leistungsart
wksDest.Cells(llastdest, 6).Value = wksdata.Cells(z, 2).Value  'Projektname
wksDest.Cells(llastdest, 7).Value = wksdata.Cells(z, s).Value  'Menge
wksDest.Cells(llastdest, 8).Value = "H"                        'ME
wksDest.Cells(llastdest, 9).Value = wksdata.Cells(1, 2).Value  ' _
Personalnummer
llastdest = llastdest + 1
End If
Next s
Next z
wkbData.Close False
Set wksdata = Nothing
Set wkbData = Nothing
Dateiname = Dir()    'automatisches Auswählen der nächsten Datei
Loop
End Sub
Function BestimmeLetzteZeile(ByVal wks As Worksheet, ByVal s As Integer) As Long
BestimmeLetzteZeile = wks.Cells(wks.Rows.Count, s).End(xlUp).Row
End Function

Function BestimmeLetzteSpalte(ByVal wks As Worksheet, ByVal z As Long) As Integer
If wks.Cells(z, 1).Value  "" Then
BestimmeLetzteSpalte = wks.Cells(z, wks.Columns.Count).End(xlToLeft).Column
Else
BestimmeLetzteSpalte = 1
End If
End Function

Function Initialisiere()
If wkb Is Nothing Then
Set wkb = ThisWorkbook
Set wksDest = wkb.Sheets("Tabelle1")
End If
End Function

Wie muss ich das genau umschreiben? Kannst du mir das sagen?
Anzeige
AW: Bestehende Formel soll nicht von Makro
19.10.2017 13:06:38
Makro
Hallo,
versuch mal
wksDest.UsedRange.Offset(1, 0).specialcells(xlcelltypeconstants).Value = ""
Gruß
Rudi
AW: Bestehende Formel soll nicht von Makro
19.10.2017 13:16:04
Makro
Hi Rudi,
vielen Dank nochmal!
Sorry wenn ich nochmal frage, aber wo muss das genau hin?
nu, anstatt ...
19.10.2017 21:43:15
Rudi
Hallo,
wksDest.UsedRange.Offset(1, 0).Value = ""
Gruß
Rudi
Anzeige
AW: nu, anstatt ...
23.10.2017 10:00:32
arek
Hallo nochmal,
zunächst mal vielen Dank für deine Hilfe. Jetzt habe ich noch folgendes Problem: Wenn in den anderen Spalten außer in E noch keine Daten vorhanden sind, funktioniert das Makro nicht und es kommt folgende Fehlermeldung: "1004:Keine Zellen gefunden". Wenn dagegen Daten schon in den anderen Spalten vorhanden sind, läuft das Makro problemlos durch. Hier wäre noch eine Beispielsdatei:
https://www.herber.de/bbs/user/117163.xlsm
Könnt ihr mir hier weiterhelfen?
Vielen Dank im Voraus!
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige