Stránka 1 z 1

vymazat řádek přes formulář VBA  Vyřešeno

Napsal: 19 led 2012 16:34
od setuB
Zdarec potřeboval pomoc s mým prvním VBA dílkem. Potřeboval bych, aby se mi objevil již vyplnění formulář pokud kliknu na řádek s požadovanými údaji a dále nemůžu přijít na to jak mám tento označený řádek vymazat a všechny řádky pod vymazaným řádkem by se posunuli o jednu poziici nahoru

díky moc za pomoc

Re: vymazat řádek přes formulář VBA

Napsal: 19 led 2012 19:30
od cmuch
Ahoj,
na smazání řádku aktivní buňky použij

Kód: Vybrat vše

Rows(ActiveCell.Row).Delete Shift:=xlUp

a ty udaje bych vkládal do formuláře přes tlačítko - tak jak máš ulož, vymaž bys měl načti. Třeba

Re: vymazat řádek přes formulář VBA

Napsal: 19 led 2012 20:01
od setuB
tvá metoda je možná, ale největší problém je ten, že nevidím ve formuláři co mažu, chtěl bych aby se hodnoty před smazáním objevili ve formuláři.

Jinak jsem to trošku upravil a přidal jsem, aby se mi formulář po uložení jednoho záznamu vymazal

Re: vymazat řádek přes formulář VBA

Napsal: 19 led 2012 20:19
od cmuch
já to myslel tak že bys hodnoty načetl a pak je smazal, tak bys viděl co mažeš.

Re: vymazat řádek přes formulář VBA

Napsal: 19 led 2012 20:30
od setuB
tady jsem našel jak bych si to představoval, bohužel vůbec nemůžu přijít na to jak o mám zakomponovat do toho mojeho VBA

Re: vymazat řádek přes formulář VBA

Napsal: 19 led 2012 21:12
od cmuch
Tak tam vlož toto ke kodum formuláře.

Kód: Vybrat vše

Private Sub UserForm_Initialize()

pole_osobni_cislo = Range("A" & ActiveCell.Row).Value
pole_jmeno = Range("B" & ActiveCell.Row).Value
pole_prijmeni = Range("C" & ActiveCell.Row).Value

If Range("D" & ActiveCell.Row).Value = "aa " Then ob_AG = True

cmb_oblast = Range("E" & ActiveCell.Row).Value
cmb_misto = Range("F" & ActiveCell.Row).Value

End Sub

Jen nevím zatím jak s tím oddělením :?

Re: vymazat řádek přes formulář VBA

Napsal: 19 led 2012 21:58
od setuB
jo už by to mohlo být, ale ještě bych potřeboval aby se ten formulář spustil tím, že udělám dvojklik na řádek.

ale jinak moc díky

ještě tuto mušku a jsem spokojenej človíček

oddělení jsem vyřešil takto

If Range("D" & ActiveCell.Row).Value = "AG" Then ob_AG = True
If Range("D" & ActiveCell.Row).Value = "FICO" Then ob_FICO = True
If Range("D" & ActiveCell.Row).Value = "QA" Then ob_QA = True
.
.
.

Re: vymazat řádek přes formulář VBA

Napsal: 20 led 2012 06:38
od cmuch
tak do kodu listu kde to chceš zpouštět dvojklikem vlož

Kód: Vybrat vše

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Karta_zamestnance.Show
End Sub

Re: vymazat řádek přes formulář VBA

Napsal: 20 led 2012 08:29
od setuB
Supr do by mohlo být ono a už to funguje, pak ještě napíšu proceduru, aby se formulář neotevíral, pokud je buňka prázdná, to už by neměl být problém

Ještě ovšem jedna malilinkatá muška :D

nevím jak editovat data, pokud dám uložit záznam, tak se mi automaticky vytvoří nový řádek na konci. Vytvořil jsem nové cmb Úprava záznamu, ale nevím jako to udělat abych změnil hodnoty a ty se mi uložili do stejného řádku, který upravuju.

Re: vymazat řádek přes formulář VBA

Napsal: 20 led 2012 10:58
od cmuch
třeba obráceně jak je vyčítáš

Kód: Vybrat vše

Range("A" & ActiveCell.Row).Value = pole_osobni_cislo
Range("B" & ActiveCell.Row).Value = pole_jmeno
Range("C" & ActiveCell.Row).Value = pole_prijmeni

If ob_AG = True Then Range("D" & ActiveCell.Row).Value = "AG"
.
.

Range("E" & ActiveCell.Row).Value = cmb_oblast
Range("F" & ActiveCell.Row).Value = cmb_misto


Ještě jsem si všimnul, že když se vybere nějaké jiné oddělení tak oblast/dílna je pořád stejné. To by chtělo také doladit.

--- Doplnění předchozího příspěvku (20 Led 2012 11:01) ---

jjo a ještě jsem špatně napsal to otevírání na doubleklik, já zkopíroval něco jiného
mělo by tam být

Kód: Vybrat vše

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Karta_zamestnance.Show
End Sub

ted se to otevira pri kliku na bunku

--- Doplnění předchozího příspěvku (20 Led 2012 11:06) ---

a aby to vynechávalo prázdné buňky tak vepis pred zobrazeni formuláře toto

Kód: Vybrat vše

If Target = "" Then Exit Sub

Re: vymazat řádek přes formulář VBA

Napsal: 20 led 2012 11:55
od setuB
jo díky moc, to jsou už jen mušinky, to se časem vychytá

--- Doplnění předchozího příspěvku (20 Led 2012 12:24) ---

---- Ještě jsem si všimnul, že když se vybere nějaké jiné oddělení tak oblast/dílna je pořád stejné. To by chtělo také doladit. -----

vyřešil jsem to tímto

Private Sub frame_oddeleni_Enter()
cmb_oblast.Text = ""
End Sub

Tak považuju tuto otázku za odpovězenou. Díky moc a zamknu toto vlákno