Jiří497 napsal/a:
Tomuto nerozumím. Nechápu, co tím přesně chcete říct.
Jiří497 napsal/a:
Odkazujete se na TextBox, který tam nemáte. Pravděpodobně je v proměnné "druhySloupec" číslo, které v UserForm neexistuje. Mapř. TextBox1256 tam určitě nemáte.
Jiří497 napsal/a:
Vložte novou přílohu.
Tak to funguje lépe, než to šlo mě, ale:
Opakuje to stejný záznam z TextBox1 do prvního sloupce a dává to chybu "Could not find specified object" na toto:
If UserForm1.Controls("TextBox" & druhySloupec).Value > "" Then
Dobrý den,
Mám takovýto (v příloze) UserForm a je v něm desítky TextBox, které potřebuji na základě podmínky (pokud v něm něco je vyplněno) propsat do seznamu v listu "Přidání".
Jednoduše - pokud v otevřeném formuláři někdo vyplní něco do pravého sloupce na kterékoliv kartě fomuláře, tak se musí vyplnit řádek (od A87 dále) dle toho, jak je napsáno v kodu:
Private Sub CommandButton1_Click()
posledni = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'posledni = ActiveSheet.Range("A1").End(xlDown).Row + 1
If TextBox125.Value > "" Then
'Trh - stejny
Cells(posledni + 1, 1).Value = "CZ"
'Název - stejny
Cells(posledni + 1, 2).Value = UserForm1.Label10.Caption
'Konkurent
Cells(posledni + 1, 3).Value = UserForm1.TextBox117.Value
'Odkaz
Cells(posledni + 1, 4).Value = UserForm1.TextBox125.Value
'Kod - stejny
Cells(posledni + 1, 5).Value = UserForm1.Label9.Caption
'PM_S - stejny
Cells(posledni + 1, 6).Value = UserForm1.TextBox1.Value
End If
End Sub
Těch TextBoxů je tam ale tolik, že mi přijde nesmysl to ke každému řádku psát samostatně. Není prosím nějaká jednodušší možnost?
Děkuji. Jsem se zase dostal do slepé uličky...
Soubor je moc velký, tak jsem ho dal sem:
https://uloz.to/file/1aQXXOoNa80x/add-products-pm-s-xlsm#!ZJD3ZGR2AGuxBTR5AwuwZGZmAQxkMatjBTSlLISwI2WZIwLlZD==
Funguje to naprosto perfektně! Děkuji :-)
Ještě mě napadla taková třešnička na dortu:
To červené tlačítko "Delete my last input" teď funguje tak, že jen vymaže řádek z přehledu (B:H), ale jak složité by bylo "zařídit", aby to vymazalo i zadanou hodnotu v BJ a BK? Je to vůbec realizovatelné? Teoreticky by se dal využít ten EAN (Sloupec A), na základě EAN vyhledat číslo řádku ve sloupci BJ a BK a vymazat obsah buňek. Je to tak? Uměl byste to také?
Mimochodem ten váš kód mě hodně naučil, děkuji!
Nevím jak vám poděkovat. Máte to u mě!
Je to perfektní kam se to už dostalo. Díky!
Mám potíž s tím, že ve chvíli, kdy se doplní cena a formulář se znovu načte, tak položka nezmizí z ComboBox.
Už při prvním spuštění formuláře nebere v potaz jen prázdné bunky, ale veškeré položky, ke kterým je přiřazeno "neuwirth".
Také se dotahuje jen Base price do sloupce BJ, šlo by také kopírovat Partner price do sloupce BK prosím?
EAN už se dohledává - nahrál jsem nová data, proto přikládám aktualizovaný soubor.
Postupuje tak, že si do ComBox1 vybere konkurenta a v ComBox2 by se měly zobrazit jen produkty, které nemají vyplněnou cenu - samozřejmě dle toho co jste už vytvořil - podle jeho UserName.
(Pravděpodobnost, že by na to někdo šel naopak je velmi malá. Myšleno tak, že by si vybral nejdříve v ComBox2 produkt a pak si z ComBox1 vybíral u kterých Konkurentů..).
Takže:
1. Otevřu excel a stisknu "START"
2. Ve formuláři vyberu v ComBox1 Konkurenta
a. Do Combox2 se načtou produkty, které jsou bez cen
3. Vyberu z ComBox2 produkt, který nemá vyplněnou cenu
4. Kliknu na pole "Label6" a načte se mi Hyperlink na konkurenční web
5. Opíšu Base price a Partner price
6. Stisknu "Insert" - zapíše se řádek do sloupců B - G
a. Zde bych ještě potřeboval jednu fíčurku o které jsem vám psal zde do Vzkazů:
Nemůžu přijít na to, jak přenést Vyplněnou "Base price" ze sloupce G do sloupce "BJ" a "Partner price" ze sloupce H do sloupce BK na základě EAN (ten se ve sloupci A generuje na základě hodnot, ve sloupci BC je pak ten stejný kod zkopírovaný z hlavní Monitoring tabulky).
Když použiju normální svyhledat, tak bunky ve sloupci BJ už nebudou prázdné (protože v nich bude vzorec) a nebudou brány v potaz v makru, které hledá právě prázdné bunky a které jste mi vytvořil.
Napadlo mě dát na konec formuláře (Po stisku tlačítka "Insert") makro, které by tam tu hodnotu dosadilo. Něco jako => svyhledat(BC2, A:G, 7,0).
Beru zpět. Je to potřeba, protože ComboBox1 a Combobox2 nejsoui nijak "spárované" a pokud se mi do ComboBox1 dotáhli dva Konkurenti a ke každému 1 produkt, tak když vyberu např. Dodavatele 1, v ComboBox2 vidím oba produkty a ne jen ten, který se načetl společně s dodavatelem 1. Co teď s tím?
To je "ošetřeno" právě těmi "X" a tím pádem pak není prázdná buňka a možnost se sama nenabízí. Větší ochrana tedy asi není potřeba.
Ale děkuji za nápad
No jo. Já jsem hnup.. Díky
Video obrazovky..
https://uloz.to/file/MoNQ04174apB/d3f7925e-d2db-485f-aa14-8105d4ee0cd7-mp4
Jiří497 napsal/a:
Můžete zkusit, jestli je to ono.
Vytvořil jsem to, aniž jsem četl poslední příspěvek s popisem procesu.Příloha: 48674_monitoring-vkladaci1.zip (480kB, staženo 4x)
Jiří497 napsal/a:
Můžete zkusit, jestli je to ono.
Vytvořil jsem to, aniž jsem četl poslední příspěvek s popisem procesu.Příloha: 48674_monitoring-vkladaci1.zip (480kB, staženo 3x)
Pro jistotu popíšu proces:
- V jiné tabulce (kde pak zároveň zobrazuji výstup z monitoringu cen) jsou definováni konkurenti a produkty které porovnáváme.
- Z té tabulky pochází sloupce BA a dále
- Potřebuji aby Produktový manažer doplnil ceny konkurence (dvě jsou proto, že jedna je základní a druhá je po slevě)
- k tomu doplnění cen slouží formulář VBA, který se spustí tlačítkem START
- při spuštění se do formuláře předvyplní toto:
1: UserName (podle něj dále rozlišujeme o jaký trh se jedná - na každém trhu působí někdo jiný - neuwirth, badzik atd.)
2: Do roletek se má předvyplnit produkt u něhož je potřeba doplnit cenu, protože políčko ceny je v tuto chvíli v tabulce BA a dále prázdně. To se i děje, ale nerozlišuje se trh a zde je problém. Potřebuji aby se předvyplily hodnoty nejen na základě "první prázdné buňky", ale zároveň se "pohlédlo" na ten username.
3: Dále až jsou hodnoty vyplněny - Tlačítko "Insert" na formuláři (zapisují se do tabulky sloupce B a dále) si už s nimi poradím - dotáhnu si je podle kodu vlevo (Sloupec A) do původní tabulky, kde se s nimi dále pracuje.
Jiří497 napsal/a:
Asi jsem dnes nějaký natvrdlý, ale nechápu to.
1. "...aby se dotahovalo..." Co se má dotájhnout, Kam se to má vložit?
2. "Takže potřebuji najít první práznou bunku ve sloupci BJ, kam se vpisují ceny..." - Kdo tam ty ceny vpisuje? Vždyť ve sloupci BJ jsou jen "x"
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.