< návrat zpět

MS Excel


Téma: ověření existence listu rss

Zaslal/a 10.11.2013 12:27

zdravím, potřebuju poradit. Lze ve vba pomocí funkce if ověřit, jestli existuje název listu v jiném sešitu? Třeba, když existuje "List3" v souboru pokus2, potom napiš "list3", pokud neexistuje, pak napiš nulu. Díky za nápady, nějak se mi to nedaří.

Zaslat odpověď >

Strana:  1 2 3   další »
#016254
Opičák
název listu v otevřeném nebo zavřeném sešitu ?citovat
#016257
avatar
Ověření existence listu v zavřeném sešitě

Sub ExistujeList()

Dim wbkpath As String, wbk As String
Dim wbksh As String, wbkshexist As String

'nastaveni promennych
wbkpath = "c:\Users\Cmuch\Downloads\"
wbk = "cenik.xlsx"
wbksh = "List 1"
wbkshexist = "list neexistuje"

Workbooks.Open (wbkpath & wbk)

On Error GoTo shNoExist
Workbooks(wbk).Sheets(wbksh).Select
On Error GoTo 0
wbkshexist = "list existuje"

shNoExist:

Workbooks(wbk).Close False

MsgBox wbkshexist

End Sub

a v aktivním sešitě
Sub ExistujeList2()
Dim sh As Worksheet

On Error Resume Next
Set sh = ActiveWorkbook.Sheets("List1")
If Err.Number <> 0 Then
MsgBox "List neexistuje"
Err.Clear
On Error GoTo 0
Else
MsgBox "List existuje"
End If

End Sub
citovat
#016263
avatar
za normálních okolností si stahuju data z docházky, kdy zápis vypadá následovně:

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("h3") <> globalni_promenna Then

globalni_promenna = Range("h3").Value

For i = 7 To 25

If Cells(i, 2) > 0 Then
Cells(i, 5) = "='\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!$G$42"
Else
Cells(i, 5) = ""
End If

If Cells(i, 2) > 0 Then
Cells(i, 1) = "='\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!$G$7"
Else
Cells(i, 1) = ""
End If

Next i

End If

End Sub

Problém nastává, když zadaný list neexistuje, tak to vyhodí error a skočí to do vba rozhraní (což nechci). Chtěl bych, kdyby mi místo erroru že chybí list, se tam vložila nula. Nebo kdyby alespoň to neskákalo do VBA rozhraní. Zkuste prosím nějaké nápady, díkycitovat
#016268
avatar
Za první end if přidej

If IsError(Cells(i, 5)) Then
Cells(i, 5) = 0
End If

a za to druhé taky jen pouprav buňkucitovat
#016270
avatar
Cmuch, to nefunguje, nejprve to vyhodí hlášku "list nenalezen" a když dám storno, tak to do buňky cells(i,5) vloží #ODKAZ a skočí to do VBA rozhraní.citovat
#016279
avatar
Toto Ti také nejde?
Mě to do žádné chyby nepadá.

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("h3") <> globalni_promenna Then

Application.EnableEvents = False

globalni_promenna = Range("h3").Value

For i = 7 To 25

If Cells(i, 2) > 0 Then
Cells(i, 5) = "='\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!$G$42"
Else
Cells(i, 5) = ""
End If

If IsError(Cells(i, 5)) Then
Cells(i, 5) = 0
End If

If Cells(i, 2) > 0 Then
Cells(i, 1) = "='\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!$G$7"
Else
Cells(i, 1) = ""
End If

If IsError(Cells(i, 1)) Then
Cells(i, 1) = 0
End If

Next i

Application.EnableEvents = True

End If

End Subcitovat
#016283
avatar
A co bez vzorce?
Sub ListExist()
'Range musí být R1C1
If IsError(ExecuteExcel4Macro("'\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!R1C1")) Then
Cells(i, 5) = ExecuteExcel4Macro("'\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!R42C7")
Else
Cells(i, 5) = 0
End If
End Subcitovat
#016284
avatar
nevím, jak by vypadal zápis pro buňky B7:B25?

kp57 napsal/a:

A co bez vzorce?
Sub ListExist()
'Range musí být R1C1
If IsError(ExecuteExcel4Macro("'\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!R1C1")) Then
Cells(i, 5) = ExecuteExcel4Macro("'\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!R42C7")
Else
Cells(i, 5) = 0
End If
End Sub
citovat
#016285
avatar
cmuch, tvůj zápis vypadá velmi jednoduše, jen nevím, proč mě to nefunguje, pořád to po mě chce, abych vybral náhradní list s daty a když dám storno, tak to skočí do VBA rozhraní 7citovat
#016286
avatar
Private Sub Worksheet_Change(ByVal Target As Range)
Dim globalni_promenna As String, i As Byte, WbSh As String
If Range("h3") <> globalni_promenna Then
Application.EnableEvents = False
globalni_promenna = Range("h3").Value
For i = 7 To 25
If Cells(i, 2) > 0 Then
WbSh = "'\\hepek01\Users\expedice\Dochazka\" & Range("i3") & "\[Docházka expedice " & Range("h3") & " " & Range("i3") & ".xls]" & Cells(i, 2) & "'!"
If Not IsError(ExecuteExcel4Macro(WbSh & "R1C1")) Then
Cells(i, 1) = ExecuteExcel4Macro(WbSh & "R7C7")
Cells(i, 5) = ExecuteExcel4Macro(WbSh & "R42C7")
Else
Cells(i, 1) = "x"
Cells(i, 5) = "x"
End If
Else
Cells(i, 1) = ""
Cells(i, 5) = ""
End If
Next i
Application.EnableEvents = True
End If
End Subcitovat

Strana:  1 2 3   další »

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje