Avatar billede Chewie Novice
03. april 2003 - 14:35 Der er 12 kommentarer og
1 løsning

Ark navn = celle (fortsat)

Hej

bak lavede denne makro til mig imorges ... men der opstå et problem når jeg har den på flere ark.

Hvis to af arkne er tomme vil de begge gerne hedde X og det kan de jo ikke :o(

Nogle forslag til en løsning ?

Sub test()
with ActiveSheet
if len(.range("a1").value)>0 then
  .Name = .Range("a1")
else
  .Name = "X"
End If
End With
End Sub

((jeg har 31 ark der kan værer tomme))
Avatar billede jkrons Professor
03. april 2003 - 14:39 #1
Hvorfor overhovedet navngive dem, når navnet alligevel er ligegyldigt.
Avatar billede jkrons Professor
03. april 2003 - 14:42 #2
Det nemmeste må da være bare at lade dem have det navn, de allerede har.

Det kan du klare med:

Sub test()
With ActiveSheet
If Len(.Range("a1").Value) > 0 Then
  .Name = .Range("a1")
End If
End With
End Sub
Avatar billede jkrons Professor
03. april 2003 - 15:31 #3
Du kan også bruge denne her, så er du ret sikker på, at der ikke bliver to ens arknavne:

Else
  .Name = CStr(Mid(Time(), 1, 2) & Mid(Time(), 4, 2) & Mid(Time(), 7, 2))
Avatar billede Chewie Novice
03. april 2003 - 15:33 #4
hvordan kommer den endelige makro så til at se ud ??
Avatar billede jkrons Professor
03. april 2003 - 15:35 #5
Sub test()
with ActiveSheet
if len(.range("a1").value)>0 then
  .Name = .Range("a1")
else
  .Name = CStr(Mid(Time(), 1, 2) & Mid(Time(), 4, 2) & Mid(Time(), 7, 2))End If
End With
End Sub
Avatar billede jkrons Professor
03. april 2003 - 15:36 #6
Edn if skulle selvfølgelig have været ned på sin egen linie.
Avatar billede Chewie Novice
03. april 2003 - 15:42 #7
den fejler på  .Name = .Range("a1")
Avatar billede jkrons Professor
03. april 2003 - 15:45 #8
Prøv med

Sub test()
With ActiveSheet
If Len(.Range("a1").Value) > 0 Then
  .Name = .Range("a1").Value
Else
  .Name = CStr(Mid(Time(), 1, 2) & Mid(Time(), 4, 2) & Mid(Time(), 7, 2))
End If
End With
End Sub
Avatar billede Chewie Novice
03. april 2003 - 15:49 #9
Hmmm

Sub omdøb()
With ActiveSheet
If Len(.Range("a1").Value) > 0 Then
  .Name = .Range("B1").Value
Else
  .Name = CStr(Mid(Time(), 1, 2) & Mid(Time(), 4, 2) & Mid(Time(), 7, 2))
End If
End With
End Sub 
--------------------------
Sub omdøb()
With ActiveSheet
If Len(.Range("B1").Value) > 0 Then
  .Name = .Range("B1")
Else
  .Name = "X3"
End If
End With
End Sub
--------------------
De to linier er helt ens
.... men på den første fejler den på .Name = .Range("B1").Value
Avatar billede jkrons Professor
03. april 2003 - 15:54 #10
I den første undersøger du om A1 er tom, og tager så værdien fra B1, som jo godt kan være tom, selv om A1 ikke er det.
Avatar billede Chewie Novice
03. april 2003 - 15:56 #11
Arrrhhh ..... sorry ... nu tror det er på tide at tage hjem fra arbejde .... så jeg ikke laver flere ulykker

mange tak :o)
Avatar billede jkrons Professor
03. april 2003 - 15:57 #12
Velbekomme!  Ha' en god aften :-)
Avatar billede Chewie Novice
03. april 2003 - 15:58 #13
ILM :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester