Just nu i M3-nätverket
Gå till innehåll
MvS

Excel Named Range Input från UserForm ─ Får bara felsvar...

Rekommendera Poster

MvS

Hej i forumet!

Håller på med ett litet (förmodligen totalt meningslöst) projekt där jag skapar en korsordshjälp i Excel. Men nu sitter jag här och har i vanlig ordning trasslat in mig i VBA-kod som bara genererar felsvar!
Verktyget jag skapat består av två fält med rutnät. I det högra fältet (Datafältet) är det meningen att man ska fylla i de numrerade rutorna från ett krypto. Detta fält speglas sedan i det vänstra fältet (Översiktsfältet) där man kan se resultatet. Det högra fältets numrering är kopplat till en bokstavskolumn som finns emellan de två övriga. Bokstavskolumnen innehåller upp numrerade  celler från 1 - 25 som man successivt fyller i. Det vänstra fältet är kopplat till både Bokstavsfältet och datafältet via bl a en LETARAD-funktion. 

Så allt fungerade perfekt till dess jag kom på att olika krypton är ju olika stora varför jag har via småstölder från diverse webbsidor satt mig före att göra detta dynamiskt med VBA-proceduren Resize som hämtar info från ett UserForm där man ska fylla i önskat värde (Rad & Kolumn antal). Har lyckats få Excel att hämta värden från formuläret men när jag sedan kommer till själva "Resize:n" så tar det stopp där jag bara får en dialogruta med "Körfel 1004: Program- eller Objektdefinierat fel". Har prövat mig fram men nu har det helt tagit stopp! Finns det någon vänlig själ därute som kan bibringa lite klarhet i vad jag gör för fel? Bifogar Bild samt själva Excelfilen (Zippad) här!

//Magnus   

Bild 1.jpg

Krypto.zip

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Snygg kod, bra struktur och ingen goto, nästan ingen select eller liknande vid första titt.

 

En sak, VBA-kod behöver inte låsa/låsa upp blad med än en gång.

 

  
    Me.Protect userinterfaceonly:=True
    Range("a1") = 1

kan köras en gång och VBA-koden kan sedan redigera allt på bladet men inte en vanlig användare.

 

Kanske inte felet men detta är ju bakvänt:

 With rngData
    Set rngData = wb.Names("Nummerkrypto").RefersToRange.CurrentRegion
    Set rngData = .RefersToRange.reSize(Cells, [sC] & ":" & [eC])
    Set rngData.Name = ("Nummerkrypto")
...
End With

På rad 1 sätter du att rngdata ska användas inom with - end.

På rad 2 sätts denna om och på rad 3 är du frågan om du refererar till rngData från rad 1 eller rad 2.

Ok, inte ett fel samma fel när jag tar bort With.

 

Men nästa då

Resize (RowSize, ColumnSize)

är formatet på resize.

Att skriva på format som du gör ovan har jag inte sett. Du får räkna fram antalet kolumer/rader som du ska utöka med (vilket du väl vet från input-formuläret?).

 

tänk om lite, jag sätter mig inte in i exakt vad du försöker göra.

 

Tips:

Öppna direktfönstret

Börja rad med ? så kan du där skriva kod som evalueras som test.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...