Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  228 229 230 231 232 233 234 235 236   další » ... 286

Skúste to zatiaľ vyriešiť definovaným názvom, podľa návrhu eLCHa.
Malo by to fungovať na SK,CZ,HU.

Skúste či je to to, čo ste chcel. Nezdá sa mi, že chcete zlučovať rôzne dátumy, a nepovedali ste ani koľko to má stĺpcov, akého formátu, či sa budú sčítavať (tak som to urobil) atď. Je to minimum informácii, navyše bez prílohy...

EDIT: 5.2.2015 09:08
Oprava prílohy
Na tom čo som si vytvoril to funguje tak ako si myslím, že aj má. Ak to Vy máte ako Tabuľku a nie tabuľku, alebo máte pred tým (asi áno) iné dáta atď, atď, tak to fungovať nebude.
Príloha je bezpodmienečne nutná.

Načo tam máte vo vzorci C2, keď je mimo tabuľkových dát a nič v nej nieje?

No a na ktorom presne riadku ? Nie náhodou na Evaluate ?
Akú hodnotu má FC.Formula1 ?

Nejako takto asi...

Váš kód ale neumožňuje prípadnú ďalšiu prácu s číslom palety. Navyše funguje pri dvojkliku hocikde, čo spôsobuje problém pri potrebe prepísať nejaké iné dáta na liste. Skôr by som to upravil na niečo takéto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = Range("Pocitadlo").Address Then
With Range("Pocitadlo")
If .Value = 6 Then .Value = 1 Else .Value = .Value + 1
Application.Goto Range("Pocitadlo").Offset(1)
End With
End If
End Sub

A formát bunky
###?"/6"
Prepínanie zo 6 na 12 by som riešil netlačiteľným zaškrtávacím políčkom.

Private Sub CommandButton50_Click()
With Worksheets("Cold").ListObjects("ColdInputEmails").DataBodyRange
.Columns(2).Resize(Evaluate("=COUNTIF(ColdInputEmails[EmailAddress],""<>""&"""")")).Value = TextBox1.Value
End With
End Sub

Ale prečo musí mať tá Tabuľka 1048566 riadkov ?

No tak to obabrime takto:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim N As Long, V As String, H As Single
If Target.Column <> 1 Then Exit Sub
With Sheets("Zdroj")
On Error Resume Next
N = WorksheetFunction.Match(Target.Value, .Columns(1), 0)
If Err <> 0 Then Target.Offset(0, 1) = "": Exit Sub
V = .Cells(N, 2)
H = .Cells(N, 2).RowHeight
With Target.Offset(0, 1).MergeArea(1)
V = Replace(V, " Adresa:", vbCrLf & "Adresa:")
.Value = V
.Font.Bold = False
.Characters(Start:=1, Length:=17).Font.Bold = True
.Characters(Start:=InStr(1, V, "Adresa:"), Length:=7).Font.Bold = True
.EntireRow.RowHeight = H
End With
End With
End Sub

Alebo CDO (až dole)
http://excelplus.net/jak-odeslat-e-mail-z-excelu/
Pozor na to heslo. Ak bude robiť s Master súborom aj niekto iný, môže si pozrieť heslo do mailu v kóde. Ak to budú iba bezpečné osoby/a tak NoProblem. Aj tak by bolo ale vhodné si na túto činnosť zriadiť novú schránku.

Len zo srandy som dal do kopy pár metód. Aj tie Vaše doterajšie som poupravil. Sú tam rôzne prípady použitia, aj jednoúčelové aj univerzálnejšie. Samozrejme, že sa nájdu aj iné spôsoby.

Ak som to správne pochopil, tak tu sú tiež 2 riešenia.

EDIT: Ešte som zabudol podotknúť, že v prílohe ste mali vypnuté počítanie vzorcov, a vo Výstupe ste mali viac riadkov ako vo Vstupe.

Z brucha na tablete:
Vo VBA pridajte Modul a vložte do neho
Function CHECKIMG(N As Range) As byte
CHECKIMG = (Len(Dir(ThisWorkbook.Path & "\Obrázky\" & N)) > 0) And 1
End Function

V zpšite potom túto UDF funkciu volajte vzorcom
=CHECKIMG(A1)
kde v A1 je názov obrázku napr. "abcd.jpg" a obrázky sú uložené v adresári zošitu v podadresári "Obrázky".

EDIT:
Alebo ešte s ošetrením toho, aby nedalo nič ak do vzorca vstupuje prázdny názov:
Function CHECKIMG(N As Range) As Variant
'Application.Volatile
If N = "" Then CHECKIMG = "": Exit Function
CHECKIMG = (Dir(ThisWorkbook.Path & "\Obrázky\" & N) <> "") And 1
End Function

Apostrof pred Application.Volatile dajte preč, ak chcete aby sa to prepočítavalo pri každej príležitosti.

Skúste si nahradiť
.Cells(N, 2).....
za
.Cells(N, 2).MergeArea.Copy Target.Offset(0, 1)
Target.RowHeight = .Cells(N, 2).MergeArea.RowHeight


Ale musíte mať aj v zdroji zlúčené bunky rovnako ako v cieľovej oblasti. Ak potrebujete druhý riadok v zlúčených zdrojových oblastiach, dajte medzi ne ľavý Alt+Enter.

@ ...Long... :Určite na to nabudúce tiež zabudnem :)
V predošlom príspevku som teda opravil obe moje chyby.

Ale myslím, že ste upozornili na tak veľa problémov s takouto opravou mien, že sa s tým naozaj neoplatí paprať. Lebo výsledok nemôže byť vždy správny. A kto bude kontrolovať či je 300 000 mien opravených správne ? ...

@ eLCHa:
Sub pok()
Dim odkial As Long
odkial = 32767 + 1
End Sub

To je celé. Nič viac. Hodí to Overflow... Musel sa nejak záhadne poškodiť u mňa Excel, to predsa nemôže byť logicky vysvetliteľné...

EDIT: odkial = CLng(32767) + 1 prejde OK
Ako po tom očúrať toto ?
Sub pok2()
Dim m(), r As Long
With Worksheets("Hárok1")
r = .Cells(Rows.Count, 5).End(xlUp).Row - 1 'napr. r=300000
'ReDim m(1 To r, 1 To 1) 'Je jedno či tam je Redim alebo nie.
m = .Cells(2, 5).Resize(r).Value
'm(32768)=chyba
End With
End Sub

Sákriš, to sú mi veci...

EDIT2: Vprvom príklade pomôže:
odkial = CLng(32768)
V druhom príklade mám chybu, preto to nejde. Uvádzam samostatne, aby bolo viditeľné o čom hovorím. Chýba tam index poľa:
m(32768, 1)=chyba


Strana:  1 ... « předchozí  228 229 230 231 232 233 234 235 236   další » ... 286

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse