Clever-Excel-Forum

Normale Version: Tabellen Umformatierung und Script/Makro zur Dateiauswahl
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

danke nochmal.
Also das funktioniert leider auch nicht...
Das Problem ist das die WorkFusion variable dann die Formel nehmen würde die hinterlegt ist.
Ich musste es, deshalb so lösen, als dass ich ein extra Feld angelegt habe wo das Datum in dem bestimmten Format direkt in Text Form eingetragen wird, ohne Formeln und Formatierungen (siehe Datei "AV Auftragsplanung Vorlage").
Ich werde wahrscheinlich nicht drum rum kommen, aber so schlimm ist es auch nicht. Hätte ja sein können, dass es einen einfachen Lösungsweg gibt den ich übersehen habe.  :19:
Hi,

nimm Marcus' Vorschlag mit der Hilfsspalte, kopiere diese und füge sie wieder als Werte ein. Dann ist die Formel weg und das Ergebnis steht als Text in der Zelle.
Hallo,

alternativ könnte man den Wert auch mit VBA aus dem Datum generieren, dann ist es gleich eine "richtige" Zahl ohne Formel im Hintergrund.
Hallo zusammen,

okay, ich glaube ich hatte das mit der Hilfsspalte falsch verstanden, ich werde mir das nochmal genauer anschauen.
Dankeschön.

Zu der Übertragung der Ursprungsdatei zu meiner Makrodatei habe ich jetzt auch eine Lösung finden können.
Code:
Sub Transfer()
Dim var_fileAV As Variant
var_fileM = ThisWorkbook.Name

    var_fileAV = Application.GetOpenFilename()
    If var_fileAV = False Then
        MsgBox "Der Benutzer hat abgebrochen.", vbInformation
    Else
    Dim var_fileAV_x As String
    Workbooks.Open var_fileAV
    var_fileAV_x = Split(var_fileAV, "\")(UBound(Split(var_fileAV, "\")))
   
    Workbooks(var_fileAV_x).Activate
    Range("b4:p6").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B6").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b10:p12").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B12").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b21:p23").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B25").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b27:p29").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B31").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b38:p40").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B44").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b44:p46").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B50").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b55:p57").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B63").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b61:p63").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B69").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b72:p74").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B82").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b78:p80").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B88").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b89:p91").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B101").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b95:p97").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B107").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b106:p108").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B120").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b112:p114").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B126").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b123:p125").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B139").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b129:p131").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B145").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b140:p142").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B158").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b146:p148").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B164").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Activate
    Range("b157:p159").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B177").Select
    ActiveSheet.Paste
    Workbooks(var_fileAV_x).Activate
    Range("b163:p165").Select
    Selection.Copy
    Windows(var_fileM).Activate
    Range("B183").Select
    ActiveSheet.Paste
   
    Workbooks(var_fileAV_x).Close SaveChanges:=False
    End If
   
End Sub

Relativ simpel aber es ist perfekt für meine Bedürfnisse, hab das auch diesmal selber geschrieben ohne Aufnahme.
Jetzt fehlt nur noch die Übertragung wieder zurück in die Ursprungstabelle, aber das sollte auf die gleiche Weise funktionieren.

Ich bin nach wie vor offen für elegantere Wege das ganze zu lösen, also wenn euch was einfällt, immer her damit  :19:

Danke an alle.
Hallo Bob,

Hier mal eine Makrolösung. Datei hänge ich auch an:


Zitat:
Option Explicit

Public Sub Formel2Wert()
  Dim s      As Integer
  Dim z      As Long
  Dim lngCalc As Long
  With Application

    lngCalc = .Calculation
    .Calculation = xlCalculationManual
    .EnableCancelKey = xlDisabled
    .ScreenUpdating = False
  End With
  z = 1
  For s = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(s, 2) = Format(Cells(s, 1), "ddmmyy")
    Cells(s, 2).Select
  Next
  With Application
    .Calculation = lngCalc
    .ScreenUpdating = True
  End With
End Sub


Gruß
Marcus
Hi Marcus, 

okay super, danke.
Das scheint zu funktionieren :)

Jetzt hab ich noch ein weiteres Problem entdeckt.

Und zwar spiele ich gerade mit PasteSpecial rum und will dass nur die Werte aus den Zellen ohne Formatierung und ohne Kommentare eingefügt werden sollen.
Mit xlpastevalues scheint er zwar die Formatierungen nicht mit zu übertragen, aber die Kommentare.

Gibt es eine Möglichkeit, dass er mir die Kommentare nicht mit einfügt?

EDIT:

Hab eine Lösung gefunden, ich füge am Ende meines Makros einfach folgendes ein:

Cells.Select
Selection.ClearComments
Hallo,
schön das jetzt alles klappt. Freut mich geholfen zu haben.

Gruß
Marcus
(27.01.2020, 12:07)marose67 schrieb: [ -> ]Hallo,
schön das jetzt alles klappt. Freut mich geholfen zu haben.

Gruß
Marcus

Hi Marcus,

ich brauche doch nochmal deine Hilfe  Angel

Also da ich generell mit Variablen und Loops noch nicht so vertraut bin kann ich deinen Code noch nicht für meine Zwecke umschreiben.
Ich benötige das Ganze nämlich so, dass in der Datei "AV Auftragsplanung Vorlage" das Datum was Bspw. in B1 steht umgewandelt wird so wie in deinem Beispiel (also in "ddmmyy"), in B4 eingetragen wird.
Außerdem frage ich mich ob es zusätzlich noch möglich wäre selbiges Datum +2 Tage zu rechnen und mir ebenfalls in eine bestimmte Zelle zu schreiben (in meiner Datei bspw. in B5).

Hintergrund: das Lieferdatum ist in der Regel 2 Tage nach dem Auftrags Datum.
Kleine Übersicht in der Grafik im Anhang.

Ansonsten wäre dein Makro echt perfekt für mich Exclamation :18:

Vielen Dank schon mal

mfG Bob
Hallo,

also ich glaube ich hab es jetzt hinbekommen mit deinem Makro, ich hab es etwas abgeändert.
Das muss ich jetzt nur noch für alle Maschinen einfügen, also das ganze x10  :19:
Code:
Sub test1()
Dim c       As Integer
Dim lngCalc As Long
With Application

    lngCalc = .Calculation
    .Calculation = xlCalculationManual
    .EnableCancelKey = xlDisabled
    .ScreenUpdating = False
End With
 
For c = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
    Cells(2, c) = Format(Cells(1, c), "ddmmyy")
    Cells(2, c).Select

Next
With Application
    .Calculation = lngCalc
    .ScreenUpdating = True
End With

End Sub


Eine Sache ist mir noch eingefallen: Wenn ich ein Datum mit einer "0" vorne also bspw. "01.02.2020" formatiere, dann sieht es so aus: "10220".
Ich benötige aber eigentlich noch eine "0" vorne, also es müsste so aussehen, damit es funktioniert: "010220".

Kann man da noch was an der Formatierung ändern im Makro? Ich hoffe es gibt dafür auch eine Lösung  Undecided
Exclamation Bump  Exclamation
Seiten: 1 2 3