Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  85 86 87 88 89 90 91 92 93   další » ... 289

Moje chabé nervy... To je taký problém, keď chcete upraviť makro, dodať súbor, ktorý korešponduje s tým makrom? V makre čarujete so stĺpcami 14, 16, 17 (N, P, Q). O takých príloha nechyruje. Výstup má prepísať pôvodný riadok? Spravím to tak, že zdroj bude A1:K1 a výstup bude A1:Kx.

EDIT: Teraz som si prešiel okom to Vaše makro. Vôbec nerobí to čo vravíte - to bude na niečo iné. Ono zlučuje hodnoty zo stĺpcov P a Q do P od 12 riadku pokiaľ nieje prázdny riadok v N. V 11. riadku má byť nejaká hlavička, a formátujete všetky dostupné riadky Excelu - to je špatne.

Pri zadávaní PF, musíte stáť na prvej bunke formátovanej oblasti, ak sa v PF používa relatívne adresovanie. A to sa tu používa. V tom druhom ste neskopíroval pravú zátvorku ")", a prílohu ste nedal.

"zmeny pozicii", "rozne tabulky", ... To je na každú tabuľku individuálne. Záleží kde začína, podľa toho ra vytvára index ten porovnávanej tabuľky (riadok/stĺpec). Pre každú zvlášť, alebo ak je v nich nejaký vzor možno sa dá dopočítať a použiť univerzál. Prílohu ...

Vy píšete o porovnaní listov, nie zošitov. V PF nepôjde takýto "cross-workbooks". To už potom asi iba makrom. Tam bude záležať na tom o koľko hodnôt pôjde, či použiť dolovanie dát cez bunku, cez otvorenie súboru, cez ExecuteExcel4Macro, cez ADO, ...
Fčuleky sa mi do toho moc nechce ... :(

Alebo si ťahať permanentne tie data z iného zošitu vzorcom do buniek v aktuálnom zošite niekam bokom a potom už PF ide.

Pr. PF:

No takto, zaregistrujte sa, a priložte prílohu - súbor. Citlivé dáta zamente, a nechajte len zopár. Hlavne ide o ponechanie rozmiestnenia všetkého. Aj kód sa bude v súbore ľahšie lúštiť s tabulátormi, ako takto bez nich.

Do prílohy Jiřího som zatiaľ nepozeral, no práve problém nadbytočných medzier som riešil vo svojich predchádzajúcich vzorcoch. Aj som to tam napísal. Je na to funkcia TRIM/PROČISTIT.

No to práve píše, že to nechce prepisovať na VBA funkcie. Postup s Name a Evaluate sa dá použiť takmer všeobecne. Ale samozrejme akákoľvek funkcia Excelu sa dá prerobiť do VBA, či už jednoduchšie alebo zložitejšie.

Asi iba použiť Evaluate spolu s dočasným vytvorením definovaného názvu, ktorý zabezpečí preklad vzorca pre Evaluate. V reťazci vzorca, treba tak či tak ošetriť úvodzovky ("" namiesto "):
Sub FUNKCE2()
Dim RetVal
Dim LocalFormula As String
Dim LanguageCode As Long

LanguageCode = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
If LanguageCode <> 1029 Then MsgBox "Nemožno vykonať, nesprávny jazyk Excelu.": Exit Sub

LocalFormula = "=CONCATENATE(ROK(EDATE(DNES();-1));""_"";KDYŽ(MĚSÍC(EDATE(DNES();-1))>9;MĚSÍC(EDATE(DNES();-1));CONCATENATE(0;MĚSÍC(EDATE(DNES();-1)))))"


On Error Resume Next
Names("EVALNAMELOCAL").Delete
On Error GoTo 0

Names.Add Name:="EVALNAMELOCAL", RefersToLocal:=LocalFormula
RetVal = Evaluate("EVALNAMELOCAL")
Names("EVALNAMELOCAL").Delete

MsgBox RetVal
End Sub

To samozrejme nemožno použiť 10 000x, lebo to bude pomalé.

???
List3.Range("B1").Value = IIf(SLOZKA = "False", SLOZKA1, SLOZKA)

Zlý popis, zlé makro, žiadna príloha. Riešenie bude bez problémov, ak pridáte prílohu, kde bude jasne ukázané čo máte (1. list), a čo má vzniknúť (2. list).
V tomto Vašom makre je "divno" definované, akú oblasť má prehľadávať na daný text.
Range("B" & xto, ActiveCell)
??? od B až po aktívnu bunku? Teda môže byť aktívna v rôznych stĺpcoch a aj tak makro má zlučovať?
A zlučovať sa má bunka s nájdeným textom so susednou zľava? Alebo ak bude prvá aktívna H, hľadať sa bude v B:G, nájde sa text v C, tak sa zlúči C:G ?
...
No dajte prílohu.

Názov listu na jeho ušku, to je akoby Caption/popis pre užívateľa. Vo VBA ak je list nemenný, tak je výhodnejšie mu priradiť tzv. CodeName. Je to položka Name v jeho vlastnostiach/Properties. Vtedy sa stačí potom v makre rovno odvolávať na jeho CodeName, a je šuma-fuk, čo má list napísané na svojom ušku.
Takže ak budete meniť iba názov uška listu, nastavte si CodeName a použite v makre to. Ak ale budete listy fyzicky stále vymieňať, tak musíte stále meniť aj názov listu v makre.

Teda príklad:
List "newdata" môžete volať v makre napr.:
Worksheets("newdata").blabla...
ale ak zmeníte jeho názov napr. na "newdata20", musíte zmeniť aj makro na
Worksheets("newdata20").blabla...
Ale ak mu priradíte CodeName na "wsNewData", tak je jedno či sa volá "newdata" alebo "newdata20", makro stále pobeží, lebo sa bude odvolávať na objekt s CodeName "wsNewData", teda
wsNewData.blabla...

Ja by som to nerobil cez Copy+PasteValues, ale rovno priradenie hodnôt.
Sub NACIST_NEWDATA()
Dim Radek As Long
Dim Pocet As Long

' Počet nových položek, určující je sloupec A:A
Pocet = wsNewData.Cells(Rows.Count, "A").End(xlUp).Row - 2
If Pocet = 0 Then MsgBox "Nejsou žádná nová data.", vbExclamation: Exit Sub

' První volný řádek v DB, určující je sloupec A:A
Radek = wsVTabulce.Cells(Rows.Count, "A").End(xlUp).Row + 1

With wsNewData.Range("B3").Resize(Pocet)
' Datum
wsVTabulce.Cells(Radek, "A").Resize(Pocet).Value = Date

' Značka
wsVTabulce.Cells(Radek, "D").Resize(Pocet).Value = .Value

' Kód, název, bližší určení
wsVTabulce.Cells(Radek, "F").Resize(Pocet, 3).Value = .Offset(0, 1).Resize(, 3).Value

' Skupina
wsVTabulce.Cells(Radek, "R").Resize(Pocet).Value = .Offset(0, 4).Value

' Dodavatel
wsVTabulce.Cells(Radek, "L").Resize(Pocet).Value = .Offset(0, 5).Value

' Položky
wsVTabulce.Cells(Radek, "K").Resize(Pocet).Value = .Offset(0, 6).Value

' Kopírované data
wsVTabulce.Cells(Radek, "AV").Resize(Pocet, 10).Value = .Offset(0, 17).Resize(, 10).Value
End With

MsgBox "Zapsáno " & Pocet & " nových řádků do databáze.", vbInformation
End Sub

Za mňa nič, rád som pomohol.

EDIT: Ba predsa len niečo, necitujte takéto dlhé príspevky. Ď.

OT: Nie neživím sa Excelom, a nieje to ani koníček, ale skôr poriadna kobyla 2


Strana:  1 ... « předchozí  85 86 87 88 89 90 91 92 93   další » ... 289

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

Tlac 2 roznych tabuliek

loksik.lubos • 17.7. 20:43

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49