Skocz do zawartości


Close Open
Close Open

broda99

Dołączył: 22 Sep 2006
Offline Ostatnio aktywny: Dec 26 2018 05:46 AM
****-

Moje posty

W temacie:Excel Przeniesienie wartosci

14 April 2018 - 11:03 AM

Załącz plik.


W temacie:[Excel VBA] Zapis z Excela do pliku .txt

07 March 2018 - 10:10 AM

VBA > w Arkusz2 wklej:

 

Option Explicit

Sub toTXT()
Dim txtFile As String, d As Integer, w As Integer

'On Error Resume Next

Sheets(2).Select

Application.ScreenUpdating = False
Application.DisplayAlerts = False

txtFile = "C:\" & Range("A9").Value & ".txt"

d = Cells(Rows.Count, "A").End(xlUp).Row
w = Cells(1, Columns.Count).End(xlToLeft).Column

Range(Cells(1, 2), Cells(d, w)).Clear

ThisWorkbook.ActiveSheet.SaveAs txtFile, xlTextWindows
ThisWorkbook.Close False

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
 

 


W temacie:VBA - kopiowanie danych pomiędzy arkuszami (w obie strony)

13 February 2018 - 20:16 PM

1. Przede wszystkim metoda "Select" jest chyba najgorsza w tym przypadku.

2. Łatwiej by było jakbyś podesłał przykładowe pliki.


W temacie:Zapis pliku word do pdf przez makro w excelu

26 January 2018 - 08:33 AM

Sprawdź  czy utworzy się poprawny plik pdf. U mnie jest niepoprawny ale ja mam zainstalowany tylko Word 2000 (nie ma w nim opcji "Zapisz jako pdf").

 

 

Private Sub Dalej_Click()
Dim objWord As Object, objDoc As Object

Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("C:\reklamacja.doc")

'objWord.Visible = True

objDoc.SaveAs "C:\reklamacja.pdf", FileFormat:=wdFormatPDF

objWord.Quit
Set objDoc = Nothing
Set objWord = Nothing

End Sub
 

Zamiast SaveAs możesz spróbować podstawić SaveAs2.


PS. Inna sprawa to obsługa warunków czy dany plik istnieje / jest otwarty  - bez tego pewnie będą  pojawiać się błędy. Ale na razie sprawdź ten fragment kodu.

 

-------------------
 

Poprawiłem - na pewno działa w Office 2013 (powinno też w 2007).

 

Private Sub Dalej_Click()
Dim objWord As Object, objDoc As Object

On Error GoTo laend2

Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("C:\reklamacja.docx")

objWord.Visible = True  'opcjonalnie '

On Error GoTo 0
On Error GoTo laend1
objDoc.SaveAs2 "C:\reklamacja.pdf", 17
MsgBox "Plik pdf został zapisany", vbInformation, "Info"
GoTo laend

laend1:
MsgBox "Sprawdź czy plik pdf nie jest już otwarty", vbCritical, "Błąd!"
GoTo laend

laend2:
MsgBox "Jakiś błąd z plikiem Word", vbCritical, "Błąd!"

laend:
On Error GoTo 0
On Error Resume Next
objWord.Quit
Set objDoc = Nothing
Set objWord = Nothing

End Sub

Dorzuciłem podstawową obsługę błędów.


W temacie:Wstawianie daty z ostatniego wpisu. EXCEL

12 January 2018 - 13:44 PM

Proszsz...:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range, Rng As Range

Set WorkRng = Intersect(Application.ActiveSheet.Range("G:AAA"), Target)
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not IsEmpty(Rng.Value) Then
            Cells(Rng.Row, 5).Value = Now
            Cells(Rng.Row, 5).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
        Else
            Cells(Rng.Row, 5).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub

Uwaga: kod nie kontroluje wpisywanych wartości - zmiana zawartości komórki na taką samą traktowana jest jako kolejna modyfikacja.

 

PS. Naprawdę pracujesz na takim zakresie (703 kolumny)???