VBA - Originale Datei schließen und Kopie öffnen .. mehr auf

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

kann mich leider grad nicht drum kümmern, aber die Makrodatei heißt in VBA
ThisWorkbook
also
ThisWorkbook.close
kann sein, dass es vorher ein
ThisWorkbook.activate
braucht. Ob das dein Problem löst, musst du ausprobieren.

danke für den * für diese doch recht magere AW!

0

Bitte nutze doch die Funktion Codebeispiel einfügen in der Formatierung. so ist es echt schwierig durch dein Makro durchzusteigen.

Sorry, das sehe ich jetzt auch erst gerade.

Als kleine Zusatzinfo ist zu sagen, dass ich dieses Makro so vorgesetzt ekommen habe, wie er hier steht. Ich konnte bislang mangels Kenntnissen nur 2 Zeilen ändern. ;)

Sub Tabellenblattkopieren()
Dim Spa As Long, Eing, AC As Long, Dateiname As String
On Error GoTo Ende
Dateiname = ActiveWorkbook.Name
AC = ActiveCell.Column
'Dateiname in Variable übergeben oder Pfad incl. Dateiname in Variable übergeben

ActiveWorkbook.Save
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Application.PrintCommunication = True
Application.Dialogs(xlDialogPageSetup).Show
Application.Dialogs(xlDialogPrint).Show

Application.ScreenUpdating = False
ActiveSheet.Copy
---> 'Ursprüngliche Datei schließen <---

Application.MaxChange = 0.001
ActiveWorkbook.PrecisionAsDisplayed = True

For Spa = 1 To 50
If Spa <> AC Then
Columns(Spa).Copy
Columns(Spa).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
Next Spa
Application.CutCopyMode = False
Ende:
Application.ScreenUpdating = True
Range("A1").Select
If Err.Number <> 0 Then MsgBox "Es ist ein Fehler aufgetreten. Diese Datei muss leider per Hand bearbeitet werden!"

'Neue Datei Speichern unter Dialog öffnen mit Speicherpfad F:/Email Send und Vorschlag Dateiname der Ursprungsdatei
0

Automatische benachrichtigung via Email bei Excelldokument speicherung

Hi Community Ich möchte mit Excell2010 eine automatische Berichtigung via E-Mail erstellen das die Datei geändert wurde wenn das Dokument gespeichert wurde. Leider ist Vb Gar nicht mein Fachgebiet. Ich habe jetzt durch langes suchen schon einen code gefunden der fast meine Bedingungen erfüllt nur leider sendet dieser als Anhang die Datei noch mit. Der Code: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'Nach Speicherung der Mappe wird automatisch eine Mail versandt

Dim blSave As Boolean
Application.EnableEvents = False
Cancel = True
blSave = True

If SaveAsUI Then
    blSave = Application.Dialogs(xlDialogSaveAs).Show
Else
    ActiveWorkbook.Save
End If

If blSave Then
    ActiveWorkbook.SendMail "mail@adresse.de", "Datei " & _
        ActiveWorkbook.Name & " wurde gespeichert !", True
End If
Application.EnableEvents = True

End Sub

Im Endeffekt brauche ich jetzt einen alternativen Befehl für „ActiveWorkbook.SendMail“ der mir maximal noch einen string mit senden lässt. Vielen vielen Dank für die Hilfe im Voraus!

...zur Frage

Excel VBA - PDF Export - PrintArea mehre Seiten?

Hallo Zusammen,

ich habe eine Excel Datei, welche max. 16 Seiten (1 Sheet) in PDF ausgeben soll, dafür nutze ich folgenden Code

Sub speichern_unter_PDF_JV_VB() Name = Range("Z1") Sheets("JV Verbund").Activate Dim neuerDateiname As String neuerDateiname = Application.GetSaveAsFilename("C:\Temp\" & "JV FY18 - " & Name & ".pdf", "Adobe PDF-Dateien (.pdf),.pdf") If Not neuerDateiname = "Falsch" Then ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=neuerDateiname, Quality:=xlQualityStandard, _ IncludeDocProperties:=False, IgnorePrintAreas:=True, From:=2, To:=16, OpenAfterPublish:=True End If

End Sub

Nun kann ich in der Datei aber auswählen, wie viele Seiten gebraucht werden, also müsste sich der Wert im String To:=16, per Zelle steuern lassen müssen..

Sprich in Zelle Z3 steht dann keine 16 sondern eben nur 2, dann solle das ganze angepasst werden ..

HILFEEEEEE

...zur Frage

Nicht genügend Speicher Excel Fehler

Hallo wenn ich folgedes makro ausführ kommt die Fehlermeldung Microsoft Visual Basic for Applicati..... Nicht genügend Speicher. Woran liegt das ? Und wie bekomme ich es hin das die Bilder wie immer eingefügt werden.

Sub Makro11()
Dim Pfad As String
Dim Dateiname As String
Dim Komplettpfad As String
Dim intRow As Integer
Dim wert As String
For intRow = 12 To 550
    Pfad = ".........................................."
    Dateiname = Range("V" & intRow)
    Komplettpfad = Pfad & "\" & Dateiname & ".jpg"
    If Dir(Komplettpfad) <> "" Then
        Range("M" & intRow).Select
        If ActiveCell.Value <> "x" Then
               ActiveCell = "x"
               ActiveSheet.Pictures.Insert(Komplettpfad).Select
           End If
    End If
Next intRow
For Each objPic In ActiveSheet.Pictures
    'Alle Grafiken formatieren :
    With objPic.ShapeRange
        .LockAspectRatio = False
        'Breite und Höhe der Grafik bitte in Klammer hier anpassen :
        .Height = Application.CentimetersToPoints(1.6)
        .Width = Application.CentimetersToPoints(1.2)
End With
Next
End Sub
...zur Frage

CSV am Ende einer Exceltabelle einfügen?

Hi,

folgendes Szenario: Ich bekomme in unterschiedlichen Zeitabständen CSV Dateien die ich in Excel importieren möchte. An sich ist das ja kein Problem. Jedoch möchte ich den ganzen Schritt automatisieren und die Daten der CSV an das Ende einer formatierten Tabelle setzen. Hat folgenden Hintergrund: Ich möchte über die Daten der CSV Dateien mehrere Auswertungen laufen lassen. Diese müssen nur einmal angelegt werden und danach immer über alle Daten aus allen CSVs laufen. Die Daten aus den CSV Dateien werden einmalig Importiert, also sind keine Dateiverbindungen nötig. Mein erster Gedankengang war ein Excelsheet "Import" in welches ich die Daten lade und dann per Makro ans ende der Tabelle schiebe. Doch da war mein Problem ein VBA-Skript zu schreiben welches immer an die nächste freie Stelle die Daten kopiert. Eventuell gibt es ja auch eine einfachere Lösung und ich finde Sie nicht. Ich habe Excel2016 im Einsatz und keine Einschränkungen in Sachen Makros. Zudem ist es eine 64bit Version welches die Verarbeitung großer Makros relativ zügig funktioniert.

Vielen Dank im Voraus für alle Antworten

Grüße

...zur Frage

Wie kann ich eine Farbe mit Visual Basic auslesen und einfügen?

Hallo zusammen,

ich habe in Excel eine Liste, mit einer Hintergrundfarbe die ich aus der Farbpalette selbst hinzugefügt habe. Nun habe ich in Visual Basic hinterlegt das je nachdem was an Werten ausgespukt wird einzellne Zellen rot gefärbt werden. Cells(zd, 6).Interior.Color = vbRed Wenn man die UserForm noch mal ausführt und die Werte ok sind, soll die Farbe wieder auf die vorherige Farbe geändert werden. Da diese aber keine standart Farbe ist, weiß ich nicht wie ich diese dort wieder rein bekomme..

...zur Frage

Hallo zusammen! Wie benenne ich Tabellenblätter automatisch nach einem Zelleninhalt mit einem Makro um welche ich aus einer anderen Datei kopiert habe?

Folgender Sachverhalt:

ich bekomme von verschiedenen Personen eine gleich formatierte Tabelle als Datei mit jeweils unterschiedlichen Werten. Diese Dateien werden per Makro in meine Datei als neues Tabellenblatt kopiert. Die Inhalte werden dann addiert und in einer Tabelle zusammengefasst. Dies alles funktioniert schon.

Mein Anliegen beschränkt sich lediglich auf die Umbenennung der kopierten Tabellenblätter auf den Inhalt der Zelle C 2. Sobald eine Datei als neues Tabellenblatt eingefügt wird soll dieses automatisch nach dem Inhalt der Zelle C2 umbenannt werden.

Mit folgendem Makro werden die Dateien eingefügt

Sub AlleSheetsAusAllenGewaehltenMappenInEineMappeZusammenfuegen()

Application.ScreenUpdating = False

Dim vntPathAndFileNames As Variant Dim strPathAndFile As String Dim lngI As Long Dim wbkMappe As Workbook Dim wksT As Worksheet Dim wbkZiel As Workbook

Set wbkZiel = ThisWorkbook

vntPathAndFileNames = Application.GetOpenFilename( _ Title:="Meine Dateien Mit gedrückter Strg Taste markieren!", _ MultiSelect:=True) If VarType(vntPathAndFileNames) = vbBoolean Then MsgBox "Keine Dateien ausgewählt! Einlesen wurde abgebrochen!" Else For lngI = LBound(vntPathAndFileNames) To UBound(vntPathAndFileNames) strPathAndFile = vntPathAndFileNames(lngI) Set wbkMappe = Application.Workbooks.Open(strPathAndFile) For Each wksT In wbkMappe.Worksheets wksT.Copy wbkZiel.Worksheets(wbkZiel.Worksheets.Count) Next wbkMappe.Close False Range("A1").Select

Next End If

Application.ScreenUpdating = True

End Sub

Bisher bin ich immer gescheitert und habe auch in diversen Foren nichts passendes gefunden.

Kann mir wer helfen?

Vielen Dank schonmal!

...zur Frage

Was möchtest Du wissen?