Quantcast
Channel: Alla ämnen på Eforum
Viewing all articles
Browse latest Browse all 7756

Värde från makroskapat excelblad, hänvisning till rätt blad

$
0
0
Hej. Jag har ett Excelmakro, där jag gjort nya blad och namngivit dem och behöver lägga information på "rätt" blad i vba-koden. Tanken är att jag ska söka igenom Exceldokumentet som makrot skrivits i och om det står "x" i en ruta, då ska information hämtas från ett annat blad (den excelbok som var aktivt när makrot startats). Bifogad bild 1 visar hur Exceldokumentet ser ut. Följande kod har fungerat för att skapa nya blad i den nya excelboken, men jag får problem att hämta ut informationen. Får en körkod "9", "Indexet är utanför intervallet" Set wkb357 = Excel.Workbooks("Makro_Till_ELVIS_listor_AllaAvd_v11_180405.xlsm") Set wks1 = wkb357.Worksheets("357") ElseIf var_avd = "357" Then Set NewSheet = Worksheets.Add NewSheet.name = wks1.Range("A2") Set NewSheet = Worksheets.Add NewSheet.name = wks1.Range("F2") Set NewSheet = Worksheets.Add NewSheet.name = wks1.Range("L2") Set NewSheet = Worksheets.Add NewSheet.name = wks1.Range("R2") Set NewSheet = Worksheets.Add NewSheet.name = wks1.Range("X2") Set NewSheet = Worksheets.Add NewSheet.name = wks1.Range("AD2") Sidan som informationen ska hämtas från om det står "x" på en viss rad, ser ut som bifogad bild 2 Makrot ska då hämta ut informationen från hela den raden (8 celler) och skriva till rätt blad, som heter samma som värdet i A2 Det är där det strular, jag får ingen information när jag försöker hämta ut värden med följande kod och jag tror jag har gjort det mer komplicerat än det behöver vara och hänvisar på fel sätt. Skulle behöva hänvisa till ett Worksheet med det namn som makrot har skapat i koden ovan, det gruppnamnet är samma som finns på sidan som söks igenom. När jag stegar igenom och kör koden, kommer den inte ens in i looparna. Set wkb357 = Excel.Workbooks("Makro_Till_ELVIS_listor_AllaAvd_v11_180405.xlsm") Set wks1 = wkb357.Worksheets("357") Dim Int_xx ' *** Variabel för rum 1-19 på admin-sidan *** Dim Int_bed ' *** Variabel för sängplats 1-5 på admin-sidan *** Dim Int_Case ' *** Variabel för rum 1-19 på makro-sidan *** Dim var_sheetName ' *** Variabel för namnet på fliken (Gruppnamn) i makrot *** Int_xx = 3 ' *** Gå igenom alla rum (1-19) och placera ut på resp lista och grupp *** Select Case Array_Avdlista(Int_currRow, var_counter) For Int_Case = 1 To 19 For var_step = 1 to 49 step 7 ' *** Gör så länge det står något i Gruppnamn-cellen på admin-sidan *** Do While wks.Range(var_step,2) <> "" ' *** Iterera igenom admin-sidans lista över sängplatser *** ' *** Om rumsnummer på admin-sidan matchar Aktuellt rum som ska skrivas *** If wks.Range(var_step, Int_xx).Value = Int_Case Then ' *** Iterera igenom admin-sidans rumsrad och se vilka det står "x" på och ta med dem på listan *** For Int_bed = 0 To 4 If wks.Range(var_step + 1, Int_xx + Int_bed).Value = "x" Then ' *** Lägg till alla cellers info i aktuell grupp *** For d = 1 To 8 var_sheetName = wks.Range(var_step, 2).Value Sheets(var_sheetName).Cells(1, d).Value = Array_Avdlista(Int_currRow, d) Next d End If Next Int_bed End If ' *** Gå till nästa rad med rumsnummer på admin-sidan och loopa *** Int_xx = Int_xx + 1 Loop Next var_step Int_Case = Int_Case + 1 Next Int_Case End Select

Viewing all articles
Browse latest Browse all 7756