Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  88 89 90 91 92 93 94 95 96   další » ... 302

Zle!
Skúsim za Vás.
Takže, hovorím pravdu ak poviem takýto popis ?

Do tabuľky na liste Predná, potrebujem zapísať všetky čísla z poslednej ohraničenej oblasti zo stĺpca K na liste Zdroj. A to tak, že začnem v E12 postupujem dole po E18, a následne na ďalší stĺpec od F12 ... pokiaľ neminiem všetky čísla z poslednej ohraničenej skupiny.


Ak je to tak, tak vzorcom jedine, ak aktuálnu skupinu označíte nejak inak, tu vedľa písmenko "a". Ak naozaj iba orámovaním, tak jedine makrom.
(maticový vzorec)
=IFERROR(INDEX(Zdroj!$K:$K;SMALL(IF(OFFSET(Zdroj!$L$2;;;COUNTA(Zdroj!$K:$K))="a";ROW(OFFSET(Zdroj!$L$2;;;COUNTA(Zdroj!$K:$K))));ROW(A1)+(COLUMN(A1)-1)*7));"")
=IFERROR(INDEX(Zdroj!$K:$K;SMALL(KDYŽ(POSUN(Zdroj!$L$2;;;POČET2(Zdroj!$K:$K))="a";ŘÁDEK(POSUN(Zdroj!$L$2;;;POČET2(Zdroj!$K:$K))));ŘÁDEK(A1)+(SLOUPEC(A1)-1)*7));"")

Chcel som od Vás manuálne vytvorený príklad výsledku. A Váš popis spomína 2 čísla, no vo výsledku je jedno číslo dva krát !!!

EDIT: Prípadne UDF funkcia na zistenie oblasti
do modulu
Public Function POSL_ORAM_SKUPINA() As Range
Dim LR As Long, i As Long, Kon As Long, Zac As Long
Application.Volatile
With Worksheets("Zdroj")
LR = .Cells(Rows.Count, "K").End(xlUp).Row
For i = LR To 2 Step -1
If Kon = 0 Then
If .Cells(i, "K").Borders(xlBottom).ColorIndex <> -4142 Then Kon = i
Else
If .Cells(i, "K").Borders(xlTop).ColorIndex <> -4142 Then Zac = i: Exit For
End If
Next i
If Kon <> 0 And Zac <> 0 Then Set POSL_ORAM_SKUPINA = .Range(.Cells(Zac, "K"), .Cells(Kon, "K"))
End With
End Function

vzorec do oblasti (maticový vzorec)
=IFERROR(INDEX(Zdroj!$K:$K;SMALL(ROW(POSL_ORAM_SKUPINA());ROW(A1)+(COLUMN(A1)-1)*7));"")
a do modulu listu
Private Sub Worksheet_Activate()
Calculate
End Sub

Ešte tu pracujem s variantom automatického vymieňania referencie na Outlook podľa aktuálnej verzie, priamo za behu kódu. Čo mi funguje v E2019, ale v E2010 mi nejde nefunkčná referencia zmazať. Skúsim ešte poriešiť.

Aj ste si to po sebe prečítal? A pochopil? Zošit nieje list. Navyše list Data tam neexistuje, ale volá sa Zdroj.
"Ak dám zadávať posledné číslo..."??? tiež nechápem.
Pridajte prílohu, kde manuálne vyrobte kompletný požadovaný výsledok z dát, ktoré v nej sú.
A pridajte trošku logickejší popis.
No a čo sa týka tej čiary, aj keď neviem ešte presne čo chcete, každopádne sa vzorcom nedá zistiť kde je čiara orámovania.

Problém je Referencia. Je to napísané hneď v prvom riadku
' Přidat Tools - References - Microsoft Outlook xx.x Object Library
To "xx.x" znamená Vašu verziu! Ja mám Office 2019, teda číslo verzie je 16.0. Vy máte Office 2010, a číslo verzie je 14.0.

Ak sa pozriete do Referencií, uvidíte tam MISSING na verzii 16.0. Tak ju odčiarknite, potvrďte. Potom začiarknite Vašu 14.0 a potvrďte. Chyba s Right$ je len nejaká divná sprievodná reakcia na tú referenciu. Ak opravíte Referenciu, Right$ aj Right bude fungovať.

Tak skúste, ale nechcite ten vzorec vysvetľovať. Teraz je to na 3 mená s rovnakým SJM a LV. Ľahko sa pridá 4. či 5. iba pridaním na koniec vzorca
&IFERROR(" a "&INDEX(JMENO;SMALL(IDENTICAL;3));"")
akurát, že to číslo 3 bude 4 atď. Neviem na koľko to je riadkov ale vypočtovo to bude náročné.

Odstráňte ten znak $ za "Right". Nie som si istý, či to Vaša verzia Excelu pozná. V novších to bežne používam. Akú máte verziu?

Takže máte v liste data na 5 strán na výšku.
Chcete tlačiť až od 3 strany, a to tak, že:

1. vytlačená strana (v liste je to strana 3.) bude mať 1/3.
2. vytlačená strana (v liste je to strana 4.) bude mať 2/3.
3. vytlačená strana (v liste je to strana 5.) bude mať 3/3.

To je to čo chcete?

VPageBreaks.Count
zmente na
ActiveSheet.VPageBreaks.Count
A čo myslíte tým výpočtom? Vzorec? To nejde. Musíte si výpočet urobiť buď vzorcom alebo vo VBA a do hlavičky dať výsledok.

Maticový
=SUMPRODUCT(IFERROR(1/COUNTIF(A1:A4;A1:A4)*(B1:B4="Milan")*(A1:A4>=E4)*(A1:A4<=E5);0))
=SOUČIN.SKALÁRNÍ(IFERROR(1/COUNTIF(A1:A4;A1:A4)*(B1:B4="Milan")*(A1:A4>=E4)*(A1:A4<=E5);0))

Tak tu máte hromadné pre Excel. Ono čo sa týka toho Outlooku, tak nerozumiem odkiaľ by bral mail, adresáre, text do mailu...
Inak ten text do mailu (telo správy), to je akože u každého iné? Predmet tiež?

Tak asi nemáte v Outlooku povolené makrá

V Exceli to naprogramovať nieje problém. Mrknem na to ale najskôr na obed. Zatiaľ upresnite:
-Na ktorom riadku začínajú dáta?
-Ktorý stĺpec je smerodajný na určenie počtu riadkov?
-V ktorom stĺpci je mail klienta?
-Počas tejto operácie je Outlook stále zapnutý? Ide totiž o to, že ak by ste mal neustále vytvárať a rušiť objekt Outlooku (alebo ho otvárať), tak je to neúnosne pomalé.

EDIT: Aha screen som si všimol až teraz.

Z Outlooku je to takto:
Sub vice_priloh_Click()
Dim myItem As Outlook.MailItem
Dim strFolderPath As String
Dim strFileName As String
Dim bIsCreated As Boolean

On Error Resume Next
Set myItem = Application.ActiveInspector.CurrentItem
On Error GoTo 0

If myItem Is Nothing Then
Set myItem = Application.CreateItem(olMailItem)
bIsCreated = True
ElseIf myItem.Class <> olMail Then
Set myItem = Application.CreateItem(olMailItem)
bIsCreated = True
End If

With myItem
strFolderPath = "C:\a pracovni\adresare\adam\"
strFileName = Dir(strFolderPath, vbNormal)

While Len(strFileName) > 0
.Attachments.Add (strFolderPath & strFileName)
strFileName = Dir
Wend

If bIsCreated Then .Display
.HTMLBody = "posíláme protokoly" & " " & " Najděte přiložený soubor " & .HTMLBody
.To = "ab@volny.cz"
.CC = "ab@volny.cz"
.BCC = "ab@volny.cz"
.Subject = "TEST MAIL"
'.Send
End With

Set myItem = Nothing
End Sub

Excel:
Private Sub vice_priloh_Click()
' Reference Microsoft Outlook xx.x Object Library
Dim objOutlook As Object
Dim myItem As Object
Dim strFolderPath As String
Dim strFileName As String
Dim bIsCreated As Boolean

On Error Resume Next
Set objOutlook = GetObject(, "Outlook.Application")
On Error GoTo 0

If objOutlook Is Nothing Then
Set objOutlook = CreateObject("Outlook.Application")
bIsCreated = True
End If
Set myItem = objOutlook.CreateItem(0)


With myItem
strFolderPath = "C:\a pracovni\adresare\adam\"
strFileName = Dir(strFolderPath, vbNormal)

While Len(strFileName) > 0
.Attachments.Add (strFolderPath & strFileName)
strFileName = Dir
Wend

.HTMLBody = "posíláme protokoly" & " " & " Najděte přiložený soubor " & .HTMLBody
.To = "ab@volny.cz"
.CC = "ab@volny.cz"
.BCC = "ab@volny.cz"
.Subject = "TEST MAIL"
.Display
'.Send
End With
If bIsCreated Then objOutlook.Quit

Set myItem = Nothing
Set objOutlook = Nothing
End Sub

A odkiaľ sa majú brať tie údaje na doplnenie ?

A ešte na konci to overiť v danom rozsahu týždňa (E4 a E5):
=SUMPRODUCT(1/COUNTIF(A1:A4;A1:A4)*(B1:B4="Milan")*(A1:A4>=E4)*(A1:A4<=E5))
=SOUČIN.SKALÁRNÍ(1/COUNTIF(A1:A4;A1:A4)*(B1:B4="Milan")*(A1:A4>=E4)*(A1:A4<=E5))

Takto?
=AVERAGE(IF((A1:A50<>"")*(COUNTIF(OFFSET(A1;;;ROW(A1:A50));A1:A50)=1);COUNTIF(A1:A50;A1:A50)))
=PRŮMĚR(KDYŽ((A1:A50<>"")*(COUNTIF(POSUN(A1;;;ŘÁDEK(A1:A50));A1:A50)=1);COUNTIF(A1:A50;A1:A50)))

Rozsah 50 si zmeňte na Váš rozsah.

Napadá ma maticový vzorec (Ctrl+Shift+Enter):
=AVERAGE(IF(COUNTIF(OFFSET(A1;;;ROW(A1:A31));A1:A31)=1;COUNTIF(A1:A31;A1:A31)))
=PRŮMĚR(KDYŽ(COUNTIF(POSUN(A1;;;ŘÁDEK(A1:A31));A1:A31)=1;COUNTIF(A1:A31;A1:A31)))


Strana:  1 ... « předchozí  88 89 90 91 92 93 94 95 96   další » ... 302

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje