Avatar billede jkrons Professor
15. april 2003 - 21:46 Der er 15 kommentarer og
2 løsninger

Vælg flere ark

I A-kolonnen i et ark har jeg nogle celler der indeholder Ark-navne på ark i samme mappe.

I B-kolonnen sætter jeg X ud for udvalgte arknavne.

Hvordan kan jeg markere (Selecte) de ark, hvor der er X udfor arknavnet.
Avatar billede jkrons Professor
15. april 2003 - 21:47 #1
Jeg skal lige tilføje, at min kode sagtens kan selecte et ark, så spørgsmålet er, hvordan jeg vælger alle de afkrydsede ark på en gang.
Avatar billede sorensfar Nybegynder
15. april 2003 - 22:18 #2
Tja, aner for så vidt ikke hvad du snakker om - lyder som om du er igang med noget macro eller VBA, så jeg kan kun komme med et langskud i total tåge :o)

Kunne man forestille sig, at du kan selecte forskellige ark ved at sætte semikolon (evt. komma) mellem de aktuelle arknavne - og HVIS det kan lade sig gøre, så at samle en tekststreng med de afmærkede arknavne i en celle, som du så refererer til når du "selecter" - Øh, hvis du forstår, hvad jeg mener *LOL*
Avatar billede jkrons Professor
15. april 2003 - 22:20 #3
Jeg er netop i gang med noget VBA. Mit problem er, at jeg gerne vil gemme de udvalgte arknavne i et array, men det kan jeg tilsyneladende ikke få til at virke.
Avatar billede sjap Praktikant
15. april 2003 - 23:06 #4
Prøv om du kan leve med mine underlige betegnelser, men nedenstående skulle faktisk virke


Dim arA() As String
Dim Arknavn(2) As String

Arknavn(1) = "Ark2" 'Dem her læser du selvfølgelig direkte i dit ark
Arknavn(2) = "Ark3" 'Jeg har blot lavet det sådan her, da det var lettere.

Antal = 2    'Her skal du placere din egen arktæller
ReDim arA(Antal - 1)

For i = 0 To Antal - 1
    arA(i) = Arknavn(i + 1)
Next i
Sheets(arA).Select
Sheets(Arknavn(1)).Activate '
Avatar billede jkrons Professor
15. april 2003 - 23:41 #5
superjap-> Det virker ikke umiddelbart, men jeg leger lige lidt med det, og vender så tilbage. Jeg tror at problemet måske ligger i min tæller.
Avatar billede jkrons Professor
15. april 2003 - 23:54 #6
superjap->  Jeg kender ikke på forhånd antallet af ark. Når jeg så erstatter dine linier:

Arknavn(1) = "Ark2"
Arknavn(2) = "Ark3"

med:

For i = 1 To adr
Arknavn(i) = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Next i

hvor adr er min tæller, får jeg Subscript out of range i
Arknavn(i) = ActiveCell.Value

Jeg tror at indholdet af en celle skal skrives i et to-dimensionelt array - men hvordan erklærer man et sådant, hvor den første dimension er dynamisk, og den sidste er statisk (altid 1)?
Avatar billede Slettet bruger
16. april 2003 - 00:00 #7
Prøv denne her:

---------------------
Sub SelectArk()
Dim shtName As String
Dim shtArray() As Variant
Dim j As Integer

j = 1

For i = 1 To 5
    If ActiveSheet.Range(Cells(i, 2), Cells(i, 2)) = "x" Then
        shtName = "Sheet" & i
        ReDim Preserve shtArray(j)
        shtArray(j) = shtName
        j = j + 1
    End If
Next i

Sheets(shtArray).Select

End Sub
--------------------

Det er en variation af superjap's.
Den virker hos mig.
Givet arknavne i Kolonne A og "x" i Kolonne B.
Avatar billede jkrons Professor
16. april 2003 - 00:05 #8
blackadder-> Den giver også subscript out of range på

Sheets(shtArray).Select
Avatar billede Slettet bruger
16. april 2003 - 00:06 #9
Kræver også at du indsætter

-------------
Option Base 1
-------------

øverst i modulet
Avatar billede Slettet bruger
16. april 2003 - 00:08 #10
Erstat:
For i = 1 To 5

Med:
For i = 1 To Sheets.Count
Avatar billede jkrons Professor
16. april 2003 - 00:08 #11
Det har jeg, men det ændrer ikke noget.
Avatar billede jkrons Professor
16. april 2003 - 00:09 #12
Samme fejl med For i = 1 To Sheets.Count
Avatar billede jkrons Professor
16. april 2003 - 00:13 #13
Måske er det bare mig, men betyder denne linie
shtName = "Sheet" & i

ikke, at du forudsætter, at arkene hedder Sheet1, Sheet2 osv? Det gør de IKKE. De hedder det, der står i A-kolonnen.
Avatar billede Slettet bruger
16. april 2003 - 00:15 #14
Duh! Du har ret.  :-)

Erstat:
shtName = "Sheet" & i

Med:
ActiveSheet.Range(Cells(i, 1), Cells(i, 1))
Avatar billede Slettet bruger
16. april 2003 - 00:16 #15
Dvs.
shtName = ActiveSheet.Range(Cells(i, 1), Cells(i, 1))
Avatar billede jkrons Professor
16. april 2003 - 00:20 #16
Så virker det perfekt Tak!  Så skal jeg bare se at få det bikset sammen med resten af min kode :-), blandt andet den, der laver listen over ark i mappen og lidt mere.

Lidt til superjap for inspirationen og resten til dig for løsningen.
Avatar billede sjap Praktikant
16. april 2003 - 10:10 #17
Hold da op en masse der sker, efter vi gamle er gået i seng. Men godt at i fik løst problemet, og tak for pointene - trods alt :-)
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