brucháč
21.04.10,16:29
Ahojte poraďáci
Dilema č 1.:vie mi niekto poradiť , ako zrýchliť prácu pri zadávaní údajov do tabuliek Excelu?
Napr.:riadok1 stl A = číslo vozidla, do stl B potrebujem aby zadal text automaticky(tatra sklapač),do stl.C vodič alebo závozník, do stl.D potrebujem aby zadal automaticky číslo(mzdovú tarifu) podľa toho či sa jedná o vodiča alebo závozníka
Dilema č 2.:pri práci často potrebujem skopírovať hárok , používam postup: úpravy,premiest.al.skop.hárok ďalej vytvoriť kopiu , presunúť na koniec.
No keď to potrebujem skopírovať dvadsaťkrát , aby som ich mohol potom postupne upravovať , tak ďakujem pekne . Poradí mi niekto nejaké makro pomocou , ktorého sa to dá urobiť naraz?
ĎK
sthruska
22.04.10,04:46
//pri práci často potrebujem skopírovať hárok
Použi techniku "ťahaj a pusť". Hárok môžeš pustiť
1) v rámci zošita (súboru) - skopíruje sa
2) v inom zošite pridá sa ako nový
3) na pracovnú plochu - vytvorí sa nový zošit

Poradie hárkov sa mení ťahaním. Môžeš kopírovať aj niekoľko hárkov naraz. To znamená:

skopírujem prvý hárok
skopírujem prvý + nový hárok atď.

Dilema č. 1 konkrétne neporadím (už v exceli veľmi nepracujem) ale riešil som to pomocou rozbaľovacích zoznamov a VBA.
PaloPa
22.04.10,09:02
Ad D1)
Asi ti viacero ľudí poradí, ako to poriešiť fukciami Excelu.

Ak potrebuješ riešenie, kedy ti Excel ponúkne predvolenú hodnotu, ale potom ju môžeš prepísať, pripájam riešenie tvojho problému cez makrá.

Je použitá funkcia Worksheet_Change nad listom „Vstupy“.
Ak zadáš hodnotu v rámci stĺpcov „číslo vozidla“ a „Vodič / Závozník“ (v rozsahu orámovaných buniek), prehľadajú sa číselníky (listy „Vozidla“ a „Tarifa“).

Program testuje či boli zadané údaje v pomenovanej oblasti „Vstup_TypVoz“ (C4:C12) alebo „Vstup_VodZav“ (E4:E12)

Ad D2)
"Všemocné" pravé tl. myši. Netreba ísť cez hl. ponuku , stačí kliknúť pravým tl. na záložke hárku a vybrať "premiestniť alebo skopírovať ..."

Pomocou makra:
Kópia listu tretieho v poradí na koniec, dá sa takto:


Sub KopirujList()
Sheets(3).Select ' "Tretí_List"
Sheets(3).Copy After:=Sheets(Sheets.Count)
End Sub

Už sa to tu riešilo:
http://www.porada.sk/t110831-pomoc-s-makrom.html

Palo

Doplnenie:
Ak uprednostníš jednoduchšiu verziu, bez číselníkov a pomenovaných oblastí,
môžeš použiť tento kód, ktorý si ľahko sám upravíš
(viď _ver2.xls)



Private Sub Worksheet_Change(ByVal Target As Range)
Dim v As String

On Error GoTo xErr
If Target.Column = Columns("C").Column Then
Select Case Target.Value
Case 1
v = "tatra sklápač"
Case 2
v = "valník"
End Select
Target.Offset(, 1).Value = v

ElseIf Target.Column = Columns("E").Column Then
Select Case UCase(Target.Value)
Case "V", "VODIČ"
v = "10"
Case "Z", "ZÁVOZNÍK"
v = "12"
End Select
Target.Offset(, 1).Value = v
End If

xErr:

End Sub
radioblaster
22.04.10,18:03
trocha sa sem votriem...

a vedel by si to upravit tak, aby ked stlacim "Z" tak sa mi tam vlozi "Ready to test from >datum kedy som to tam vlozil<" ??
Stefan2005
22.04.10,18:42
potrebujem skopírovať hárok dvadsaťkrát...


... Možná to nie je ono čo chces, ja si zvyknem si pomôct zvýraznením hárkov - teda ich hromadným kopírovaním.
Napr. mám 5 hárkov, potrebujem z nich dvadsať. Označím všetkých 5 - pravé tlačítko vytvoriť kópiu - z 5 urobí 10; označím všetkých desať - pravé tlačítko vytvoriť kópiu - a mám dvadsať hárkov. Už iba ich premenovať...
PaloPa
23.04.10,05:41
... Možná to nie je ono čo chces, ja si zvyknem si pomôct zvýraznením hárkov - teda ich hromadným kopírovaním.
Napr. mám 5 hárkov, potrebujem z nich dvadsať. Označím všetkých 5 - pravé tlačítko vytvoriť kópiu - z 5 urobí 10; označím všetkých desať - pravé tlačítko vytvoriť kópiu - a mám dvadsať hárkov. Už iba ich premenovať...

Dá sa napr. takýmto makrom (i s pomenovaním)
P.


Sub PridajList()

Dim xPocetListov, i
On Error Resume Next

xPocetNovychListov = InputBox("Zadajte počet nových listov:", "VSTUP", 1)
If IsNumeric(xPocetNovychListov) And xPocetNovychListov > 0 Then
For i = 1 To xPocetNovychListov
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Novy_" & CStr(i)
Next i
End If

End Sub
Stefan2005
23.04.10,06:15
Dá sa napr. takýmto makrom (i s pomenovaním)
P...[/CODE]

Ale ja potrebujem (resp. i zadávateľ otázky) nie 20 nových (prázdnych) hárkov, ale 20 kópií už z existujúceho hárku (hárkov - napr. z hárku 2, 4 a 5), v ktorom sú už údaje...
marjankaj
23.04.10,09:11
Ale ja potrebujem (resp. i zadávateľ otázky) nie 20 nových (prázdnych) hárkov, ale 20 kópií už z existujúceho hárku (hárkov - napr. z hárku 2, 4 a 5), v ktorom sú už údaje...

Vymeň si riadok

Sub PridajList()

Dim xPocetListov, i
On Error Resume Next

xPocetNovychListov = InputBox("Zadajte počet nových listov:", "VSTUP", 1)
If IsNumeric(xPocetNovychListov) And xPocetNovychListov > 0 Then
For i = 1 To xPocetNovychListov
ActiveSheet.Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Novy_" & CStr(i)
Next i
End If

End Sub
PaloPa
23.04.10,15:35
Ale ja potrebujem (resp. i zadávateľ otázky) nie 20 nových (prázdnych) hárkov, ale 20 kópií už z existujúceho hárku (hárkov - napr. z hárku 2, 4 a 5), v ktorom sú už údaje...

Pre kopírovanie viacerých listov naraz takto:


Sheets(Array("Sheet1", "Sheet3")).Copy After:=Sheets(Sheets.Count)
resp. takto:


Sheets(Array(1, 3)).Copy After:=Sheets(Sheets.Count)


P.
brucháč
24.04.10,03:37
Ďakujem Vám všetkým za radu
idem skúšať , skúšať a skúšať .