vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest czwartek, 02 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Pomoc w napisaniu makro


otwartyotwarty rozpoczął: toczi1 postów: 64



napisał: Trebor
postów: 1209


umieszczony:
12 czerwca 2017
16:29

  
Sądzę, że da się coś takiego zrobić.
Załóż z tym problemem nowy temat.
napisał: toczi1
postów: 75


umieszczony:
12 czerwca 2017
12:47

  
Ok prześle go później.

A taka inna sprawa mam dane w pliku i na końcu w kolumnach zlicza wyniki czyli suma i niektóre wypadają poza i chciałbym np odchaczyc wiersze tak żeby wynik się zgadzał da się zrobić coś takiego w excelu ?
napisał: Trebor
postów: 1209


umieszczony:
8 czerwca 2017
15:42

  
Nie widzę w kodzie takiego warunku. Potrzebuję działający skoroszyt, w którym tak się dzieje.
napisał: toczi1
postów: 75


umieszczony:
8 czerwca 2017
13:56

edytowany:
8 czerwca 2017
13:57

  
Działa to jeśli w listbox masz zaznaczone kilka opinii koło siebie ale jak już jest zaznaczone np 1 i 4 to wtedy tylko dodaje opinie do 4 i nie wyskakuje mesbox do 1 i nie zamyka.




Cytat:
For i = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(i) Then


If ListBox1.List(i, 3) <> "Zamknięte" Then

'....................
'....................

End If
End If
Next i


Chodzi o wyeliminowanie z kodu exit sub. Brak możliwości testowania nie pozwala mi na 100% odpowiedzieć, że to jest jedyna przyczyna.
napisał: Trebor
postów: 1209


umieszczony:
5 czerwca 2017
16:48

  
For i = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(i) Then


If ListBox1.List(i, 3) <> "Zamknięte" Then

'....................
'....................

End If
End If
Next i


Chodzi o wyeliminowanie z kodu exit sub. Brak możliwości testowania nie pozwala mi na 100% odpowiedzieć, że to jest jedyna przyczyna.
napisał: toczi1
postów: 75


umieszczony:
5 czerwca 2017
07:22

  
To jak powinny być zmieniony poniższy mój kod aby to działało.




Cytat:
Witaj
'linia sprawdzająca czy wiersz jest wybrany
If ListBox1.Selected(i) Then

'jeśli w tzreciej kolumnie listy jest wpis Zamknięte to zakończ procedurę
' tak nie powinno być gdy chcesz sprawdzać wszystkie wiersze listboxa
'raczej If ListBox1.List(i, 3) <> "Zamknięte" Then
'jednocześnie dodając przed Next End If

If ListBox1.List(i, 3) = "Zamknięte" Then Exit Sub

'tu sprawdzasz następny warunek, może nigdzie poza jednym wierszem nie jest prawdziwy?
If Sheets("Arkusz2").Range("C2").Value = Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) Then

Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 3) = "W toku"
Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 21) = Application.UserName & " " & Format(Date, "yyyy-mm-dd")
UserForm8.Label1 = ListBox1.List(i, 2)
UserForm8.Show

napisał: Trebor
postów: 1209


umieszczony:
3 czerwca 2017
19:35

  
Witaj
'linia sprawdzająca czy wiersz jest wybrany
If ListBox1.Selected(i) Then

'jeśli w tzreciej kolumnie listy jest wpis Zamknięte to zakończ procedurę
' tak nie powinno być gdy chcesz sprawdzać wszystkie wiersze listboxa
'raczej If ListBox1.List(i, 3) <> "Zamknięte" Then
'jednocześnie dodając przed Next End If

If ListBox1.List(i, 3) = "Zamknięte" Then Exit Sub

'tu sprawdzasz następny warunek, może nigdzie poza jednym wierszem nie jest prawdziwy?
If Sheets("Arkusz2").Range("C2").Value = Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) Then

Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 3) = "W toku"
Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 21) = Application.UserName & " " & Format(Date, "yyyy-mm-dd")
UserForm8.Label1 = ListBox1.List(i, 2)
UserForm8.Show

napisał: toczi1
postów: 75


umieszczony:
1 czerwca 2017
07:09

edytowany:
1 czerwca 2017
07:11

  
Witam Trebor potrzebuje porady chodzi o to że jeśli w okienku zaznaczę sobie kilka zgłoszęń dodania opini po koleji to zawsze bierze tylko ostatnie i zamyka plik.
Chciałbym tak ze jak zaznaczę w szukaniu list box załóżmy 3 zgłoszenia i żeby po kolei dodawać opinie do każdego poprzez wyskakiwanie UserForm8.Label1 i wpisanie pierwszej wysyła emaila i powraca do następnej żeby dodać opinie.
Jest na końcu
NEXT I

ale u góry jest
For i = 2 To ostatni

i jak doda ta jedna opinie do ostatniego to zamyka plik.



Private Sub CommandButton1_Click()
Dim i As Long, ostatni As Long, TekstSzukany

If TextBox1.Text = "" Then MsgBox "Wpisz tekst do wyszukania.": TextBox1.SetFocus: Exit Sub
TekstSzukany = UCase(TextBox1.Text)

ListBox1.Clear
'===========================================================================
With Sheets("BAZA_AN")

ostatni = .Columns("A:B").Find(What:="*", After:=.Cells(1, 1), _
               SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

For i = 2 To ostatni
If .Rows(i).Hidden = False Then
If UCase(.Cells(i, 1)) Like TekstSzukany Or UCase(.Cells(i, 2)) Like TekstSzukany Then
    ListBox1.AddItem .Cells(i, 1)
    ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(i, 2)
    ListBox1.List(ListBox1.ListCount - 1, 2) = i
    ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(i, 3)
    ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(i, 3).Parent.Name
End If
End If
Next i
End With

End Sub





Private Sub CommandButton2_Click()
Dim i As Long, ostatni As Long

If ListBox1.ListCount = -1 Then MsgBox "Brak listy materiałów.": Exit Sub

For i = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(i) Then


If ListBox1.List(i, 3) = "Zamknięte" Then Exit Sub


If Sheets("Arkusz2").Range("C2").Value = Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) Then

Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 3) = "W toku"
Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 21) = Application.UserName & " " & Format(Date, "yyyy-mm-dd")
UserForm8.Label1 = ListBox1.List(i, 2)
UserForm8.Show

ActiveWorkbook.FollowHyperlink "mailto:" & "JAN" & ";" & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 13) & ";" & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 10) & "?subject=Zgłoszenie AN -" & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) & "&" & "body=" & "Dodano Opinie - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 2) & _
"%0a Osoba opiniująca - " & Application.UserName & _
"%0a Wydział wystwiający - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) & _
"%0a Numer detalu - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 4) & _
"%0a Wydanie rysunku - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 5) & _
"%0a Numer Operacji - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 6) & _
"%0a Numer Serii - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 7) & _
"%0a Ilość sztuk w serii/sztuki niezgodne - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 8) & _
"%0a Status AN - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 3) & _
"%0a" & _
"%0a Proszę o zapoznanie się z opinią i proszę o podanie decyzji Wydziałowej KJ " & _
"%0a" & _
"%0a Opinia osoby odpowiedzialnej za AN: Proszę zapoznać się z opinią osoby odpowiedzialnej za AN w pliku AN " & _


Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "^{Return}" 'skrót klawiaturowy w Twoim programie pocztowym
Application.SendKeys "^~"

zerowanie
ThisWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close

End If

If Not Sheets("Arkusz2").Range("C2").Value = Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) Then:

If Sheets("Arkusz2").Range("C3").Value = Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) Then

Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 3) = "W toku"
Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 21) = Application.UserName & " " & Format(Date, "yyyy-mm-dd")
UserForm8.Label1 = ListBox1.List(i, 2)
UserForm8.Show

ActiveWorkbook.FollowHyperlink "mailto:" & "jan" & ";" & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 13) & ";" & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 10) & "?subject=Zgłoszenie AN - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) & "&" & "body=" & "Dodano Opinie - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 2) & _
"%0a Osoba opiniująca - " & Application.UserName & _
"%0a Wydział wystwiający - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) & _
"%0a Numer detalu - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 4) & _
"%0a Wydanie rysunku - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 5) & _
"%0a Numer Operacji - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 6) & _
"%0a Numer Serii - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 7) & _
"%0a Ilość sztuk w serii/sztuki niezgodne - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 8) & _
"%0a Status AN - " & Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 3) & _


Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "^~" 'skrót klawiaturowy w Twoim programie pocztowym


zerowanie
ThisWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close


End If

If Not Sheets("Arkusz2").Range("C3").Value = Sheets("Baza_AN").Cells(ListBox1.List(i, 2), 11) Then: Exit Sub



End If
Next i
Unload Me
End Sub

napisał: Trebor
postów: 1209


umieszczony:
7 kwietnia 2017
15:21

  
Spróbuj usunąć na raty np. na początek po 100 000 wierszy. Usuwaj od końca arkusza( najwyższe indeksy)
napisał: toczi1
postów: 75


umieszczony:
7 kwietnia 2017
12:52

  
nazwa pliku rozmiar
zakres.jpg 158.42 kB

Dobrze mnie zrozumiałeś :)
Zakres jest tak duży ze nie chce usunąć zobacz w zdjęciu
napisał: Trebor
postów: 1209


umieszczony:
3 kwietnia 2017
17:44

edytowany:
3 kwietnia 2017
17:45

  
Rozumiem twój post tak:
Miałeś kiedyś dane we wszystkich wierszach arkusza. Teraz nawet jak usunąłeś dane to suwak zachowuje się tak jakby dane dalej były.
Makrem jeszcze nie próbowałem. Ręcznie - zaznacz całe puste wiersze. Np dane kończą się na 100 wierszu. Kliknij raz na na nagłówku wiersza tj. na liczbie 101 oznaczającej wiersz. Wciśnij i przytrzymaj klawisze Ctrl + Shift + strzałka w dół. Puść klawisze. Prawoklik na zaznaczonym zakresie i wybierz Usuń. Kliknij raz na komórkę z danymi i zapisz skoroszyt. Suwak powinien się zwiększyć. Jeśli tak się nie stanie spróbuj zamknąć i otworzyć skoroszyt.
napisał: toczi1
postów: 75


umieszczony:
3 kwietnia 2017
11:41

edytowany:
3 kwietnia 2017
11:43

  
Witam
Trebor co wstawić żeby wycinało razem z wierszem bo jak przenoszę dane co chwile t teraz mam 1048408 wierszy i kolejne się dodają i nie mogę ich osunąć hurtowo i nie można suwakiem przejeżdżać pomiędzy danymi bo jak rusze to odrazu jest na dole hehe

For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
    If ListBox1.List(ListBox1.ListIndex, 3) = "WYP" Then .Cells(ListBox1.List(i, 2), 16).Value = .Cells(ListBox1.List(i, 2), 16).Value
    .Range(.Cells(ListBox1.List(i, 2), 1), .Cells(ListBox1.List(i, 2), .Columns.Count).End(xlToLeft)).Copy Sheets("UNA_CO_5_LAT").Cells(ostatni, 1)
    Sheets("UNA_CO_5_LAT").Cells(ostatni, 5) = ListBox1.List(ListBox1.ListIndex, 3)
    Sheets("UNA_CO_5_LAT").Cells(ostatni, 7) = ""
        ostatni = ostatni + 1
    .Rows(ListBox1.List(i, 2)).Delete
            End If

napisał: toczi1
postów: 75


umieszczony:
14 września 2016
22:18

edytowany:
15 września 2016
08:32

  
Cytat:
Każda metoda będzie miała jakieś ograniczenia. Liczba znaków w komórce też jest ograniczona, chociaż ta liczba jest znacznie większa niż to co oferuje InpuBox i wysyłanie za pomocą FollowHyperlink.
InputBoxa możesz zastąpić UserFormem. O wysyłce już pisałem w poprzedniej wypowiedzi.



Próbowałem z tym userform ale coś mi błędy sypało a z tym wysyłaniem to nie wiem czy ogarnę. trudno narazie nie było problemu ze ktoś za dużo wpisał i ze nie wysłało hehe.
A nie dało by się podzielić tego wysyłania ze np ta sama komórkę podbierało by 2 razy tylko np w pierwszym taka ilość znaków od do a w drugim reszta ?

Albo jeśli by przekroczyło liczbę znaków i nie podebrało by tego do emaila to wtedy żeby wysyłało email ale z wpisem proszę zapoznać się z opinia w pliku. Taka alternatywa



Poradziłem sobie z userforma a w wysyłaniu email zrobiłem żeby zapoznać się z opisem w pliku i problem z głowy a wszystkie opinie wpisuje poprzez textbox bo więcej można wpisać.
napisał: Trebor
postów: 1209


umieszczony:
14 września 2016
20:22

  
Każda metoda będzie miała jakieś ograniczenia. Liczba znaków w komórce też jest ograniczona, chociaż ta liczba jest znacznie większa niż to co oferuje InpuBox i wysyłanie za pomocą FollowHyperlink.
InputBoxa możesz zastąpić UserFormem. O wysyłce już pisałem w poprzedniej wypowiedzi.
napisał: toczi1
postów: 75


umieszczony:
14 września 2016
08:54

edytowany:
14 września 2016
10:44

  
Mam problem z Inputbox w nim jest określona liczba znaków i jeśli wpisze full znaków a jeszcze coś dopisuje to potem jeśli dopisuje coś drugim razem to wyskakuje błąd "Invalid procedure call or argument" Run time error 5, i nie nie pójdzie dalej

Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) = Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) & Chr(13) & InputBox("Wpisz działania korygujące")
Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 14) = Application.UserName & " " & Format(Date, "dd.mm.yyyy")

ActiveWorkbook.FollowHyperlink "mailto:" & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 6) & ";" & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 9) & "?subject=Zgłoszenie AZUP " & "&" & "body=" & "Dodano działania korygujące do AZUP - " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 2) & _
"%0a Status AZUP - " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 3) & _
"%0a" & _
"%0a Działania korygujące wprowadził - " & Application.UserName & _
"%0a" & _
"%0a Proszę o zapoznanie się z działaniami korygującymi i proszę o zamkniecie AZUP jeśli zostały podjęte odpowiednie działania " & _
"%0a" & _
"%0a Opis Działań Korygujących: " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) & _
"%0a" & _
"%0a Link do pliku AZUP: file:\\P:\QA_BAZY\AZUP\Baza_AZUP_QP_8_ver.1.xlsm " & _
"%0a" & _
"%0a Link do COOKBOOK AZUP: file:\\P:\QA_BAZY\AZUP\COOK_BOOK_AZUP(ARKUSZ_ZGLOSZEN_USPRAWNIEN_I_PROBLEMOW).pdf "



Troche testowałem i jak było dużo tekstu w komórce to nie wysyłało email a jeśli wyciąłem polecenie
"%0a Opis Działań Korygujących: " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) & _


To błędu już nie było i wysłało email ale bez tego tekstu błąd jest chyba z ładowaniem tej wartości do emaila, ale email może zmieścić dużo znaków. Można to podebrać w inny sposób jakimś innym kodem .

Bo ewidentnie nie podbiera większej liczby znaków niż może zmieścić inputbox czyli jak napisze pierwsza opinie wykorzystując wszystkie znaki z inputbox i potem dodam jeszcze jakaś opinie do tego samego to wklei to do komórki ale już nie podbierze do wysyłania
napisał: Trebor
postów: 1209


umieszczony:
12 września 2016
15:45

  
Np tak:
Private Sub CommandButton2_Click()
Dim i As Long, ostatni As Long, komunikat As String

If ListBox1.ListCount = -1 Then MsgBox "Brak listy materiałów.": Exit Sub

For i = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(i) Then

If ListBox1.List(i, 3) = "Zamknięte" Then Exit Sub


If ListBox1.List(i, 3) = "Otwarte" Then
Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 3) = "W toku"
End If
'---------------------------------------------------------
komunikat = InputBox("Wpisz działania korygujące")
If komunikat = "" Then Exit Sub
'---------------------------------------------------------
Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) = Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) & Chr(10) & komunikat
Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 14) = Application.UserName & " " & Format(Date, "dd.mm.yyyy")


ActiveWorkbook.FollowHyperlink "mailto:" & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 6) & ";" & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 9) & "?subject=Zgłoszenie AZUP " & "&" & "body=" & "Dodano działania korygujące do AZUP - " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 2) & _
"%0a Status AZUP - " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 3) & _
"%0a Działania korygujace wprowadził - " & Application.UserName & _
"%0a Prosze o zapoznanie sie z działaniami korygującymi i proszę o zamkniecie AZUP jeśli zostały podjęte odpowiednie działania " & _
"%0a Opis Działań Korygujących: " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) & _
"%0a Link do pliku AZUP: file:\\P:\W50_KJ50_CMM\Baza_AZUP\Baza_AZUP_QP_8_ver.1.xlsm "

Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "^~" 'skrót klawiaturowy w Twoim programie pocztowym

zerowanie
ThisWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close



End If
Next i
Unload Me
End Sub


Co do pozostałych pytań to moja wiedza jest za skromna. Jeśli zdecydujesz się na wysyłanie maila "outllokiem officowym" sterowanym z excela Twoje szanse na rozwiązanie tego problemu znacznie wzrosną.
W mojej wersji pakietu office nie ma outlloka, więc moja pomoc będzie bardzo ograniczona. Poniżej ogólny schemacik wysyłaniaz jakiejś strony
Sub mailing()
    Dim olApp As Object
    Dim olMail As Variant
    Dim i As Long
    Dim ost As Long
   
    Set olApp = CreateObject("Outlook.Application")
   
    ost = Cells(Rows.Count, 1).End(xlUp).Row
   
For i = 2 To ost
    If Cells(i, "G") = "Po terminie" Then
        Set olMail = olApp.CreateItem(olMailItem)
        With olMail
            .to = Cells(i, "E")
            .Subject = Cells(i, "C") & "-" & Cells(i, "B") & "-" & Cells(i, "D")
            .body = "Data ważności: " & Format(Cells(i, "F"), "dd-mm-yyyy")
            .display
            '.send
        End With
    End If
Next i
    Set olApp = Nothing
    Set olMail = Nothing
End Sub


Oj widzę, że to cała seria maili. Dasz sobie radę.
napisał: toczi1
postów: 75


umieszczony:
12 września 2016
04:30

edytowany:
12 września 2016
10:54

  
Witam Trebor
Mam pytanie jak ostawić input box tak aby jak dam Cancel to żeby nie wysyłało email tylko wychodziło a dopiero jak wprowadzę tekst i dal OK to żeby skończyło makro.
Jest tak :

Private Sub CommandButton2_Click()
Dim i As Long, ostatni As Long

If ListBox1.ListCount = -1 Then MsgBox "Brak listy materiałów.": Exit Sub

For i = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(i) Then

If ListBox1.List(i, 3) = "Zamknięte" Then Exit Sub


If ListBox1.List(i, 3) = "Otwarte" Then
Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 3) = "W toku"
End If

Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) = Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) & Chr(10) & InputBox("Wpisz działania korygujące")
Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 14) = Application.UserName & " " & Format(Date, "dd.mm.yyyy")


ActiveWorkbook.FollowHyperlink "mailto:" & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 6) & ";" & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 9) & "?subject=Zgłoszenie AZUP " & "&" & "body=" & "Dodano działania korygujące do AZUP - " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 2) & _
"%0a Status AZUP - " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 3) & _
"%0a Działania korygujace wprowadził - " & Application.UserName & _
"%0a Prosze o zapoznanie sie z działaniami korygującymi i proszę o zamkniecie AZUP jeśli zostały podjęte odpowiednie działania " & _
"%0a Opis Działań Korygujących: " & Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 11) & _
"%0a Link do pliku AZUP: file:\\P:\QA_BAZY\AZUP\Baza_AZUP_QP_8_ver.1.xlsm " & _
"%0a"


Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "^{Return}" 'skrót klawiaturowy w Twoim programie pocztowym
Application.SendKeys "^~"

zerowanie
ThisWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close



End If
Next i
Unload Me
End Sub




A była by taka techniczna możliwość ze jeśli wyśle email to np: Sheets("Baza_AZUP").Cells(ListBox1.List(i, 2), 25) =YES lub NO . Żeby podało informacje w komórce czy email został wysłany czy nie.

Jak rozwiązać problem bo jeśli mam w Outlooku otworzonego innego emaila albo pisze jakiegoś to jak dodaje AZUP i wyskoczy do wysyłania email to go nie wyśle. A jak mam włączona tylko pocztę bez żadnych otwartych emailu to wtedy wyśle bez problemu
napisał: toczi1
postów: 75


umieszczony:
1 września 2016
10:53

edytowany:
1 września 2016
13:31

  
Zrobiłem to poprzez tworzenie folderu o nazwie AZUP poprze MkDir "H:\Makra\Baza_AZUP\Zdjecia\" & TextBox5.Value & "" a następnie osoba wrzuca tam jakieś pliki i w emailu wysyła linka do tego folderu z numerem azup "%0a Link do folderu z plikami: file:\\H:\Makra\Baza_AZUP\Zdjecia\" & TextBox5.Value & "" & _.

I po problemie :)

Ten skrót SendKeys "^{Return}" to też służy jako skrót klawiszowy do wysłania email tak samo jak to co mi napisałeś SendKeys "^~"
napisał: toczi1
postów: 75


umieszczony:
31 sierpnia 2016
20:39

edytowany:
1 września 2016
09:10

  
Cytat:
Według mojej wiedzy sposób z ActiveWorkbook.FollowHyperlink nie pozwala na wysyłanie załączników.
Jeśli takie rozwiązanie znajdziesz mam nadzieję, że podzielisz się nim na forum.


A jest możliwe przez inna funkcje wysyłania ale żeby zawierało informacje które teraz wysyła poprzez ActiveWorkbook.FollowHyperlink i wysyłało do tych osób co są tam podbierani.

Rozwiązaniem by było jeśli by dodać funkcja w dodaj azup np:"podaj lokalizacje pliku" i wtedy wskazujesz gdzie znajduje się zdjęcie i kopiuje adres wskazany i wysyła go w wiadomości jako hiperłącze np: "%0a Link do zdjecia: file:\\P:\W50_KJ50_CMM\Baza_AZUP\Zdjecia\Zdjecie_1.jpg". Tylko wtedy zdjęcia były by w jednym folderze o nazwie np. numeru AZUP.
Albo plik zdjęcia w folderze zdjęcia zawsze o tej samej nazwie i żeby zawsze podbierało jeden link ustawiony na sztywno w funkcji wyślij email

Tylko nie wiem jak dodać takie coś żeby wybrać lokalizacje pliku tak jak macie tu wyżej wybierz plik i wskazujesz i wtedy by brało tylko hiperłącze i wysyłało
napisał: Trebor
postów: 1209


umieszczony:
31 sierpnia 2016
17:19

  
Według mojej wiedzy sposób z ActiveWorkbook.FollowHyperlink nie pozwala na wysyłanie załączników.
Jeśli takie rozwiązanie znajdziesz mam nadzieję, że podzielisz się nim na forum.


<-wstecz  1 2 3 4  dalej->
wszystkich stron: 4


Sortuj posty: z