Avatar billede dsj1972 Mester
24. august 2008 - 12:22 Der er 23 kommentarer og
1 løsning

hvordan kan man angive fast bestemt størrelse på celler??

Hejsa,

Jeg er igang med et forsøg hvor jeg vil bruge excel som nummererings program til noget gravering. Men jeg har lidt problemer med at definere fast størrelse på cellerne.

eks. så vil jeg gerne have en række (rk1) og 18 kolonner (A-R).

Jeg har nogle emner som måler 7,9x42 mm disse har jeg 18 som skal ligges op efter hinanden, det er disse som jeg nu vil have gengivet størrelses vis på celler, således at række 1 skal være 42mm (hvilket jeg har fundet frem til 120) og cl A-R skal være 7,9 mm (hvilket jeg på en eller anden måde har regnet mig frem til 3,41)men mit problem er at jeg ikke kan få den til at fast holde de 3,41, den angiver istedet 3.43, følgelig fordi det har relation til punktstørrelse/pixel, men er der ikke en metode hvorved man kan force den til at definere bestemt størrelse???

Håber i kan forstå mit problem, ellers så spørg så skal jeg besvare efter bedste kunnen.

På forhånd tak!!

Mvh Dennis Jensen
Avatar billede kabbak Professor
24. august 2008 - 12:31 #1
det er kolonne bredden, den hænger sammen med skrifttypen, se her:
http://support.microsoft.com/kb/214123
Avatar billede kabbak Professor
24. august 2008 - 12:59 #2
Jeg har tilrettet en makro til dig, den er taget herfra:
http://www.erlandsendata.no/english/index.php?d=envbawssetrowcol


Sub SetColumnWidthMM(ColNo As Long, mmWidth As Double)
' changes the column width to mmWidth
Dim w As Single
    If ColNo < 1 Or ColNo > 255 Then Exit Sub
    Application.ScreenUpdating = False
    w = Application.CentimetersToPoints(mmWidth / 10)
    While Columns(ColNo + 1).Left - Columns(ColNo).Left - 0.1 > w
        Columns(ColNo).ColumnWidth = Columns(ColNo).ColumnWidth - 0.1
    Wend
    While Columns(ColNo + 1).Left - Columns(ColNo).Left + 0.1 < w
        Columns(ColNo).ColumnWidth = Columns(ColNo).ColumnWidth + 0.1
    Wend
End Sub

Sub SetRowHeightMM(RowNo As Long, mmHeight As Double)
' changes the row height to mmHeight
    If RowNo < 1 Or RowNo > 65536 Then Exit Sub
    Rows(RowNo).RowHeight = Application.CentimetersToPoints(mmHeight / 10)
End Sub
Sub ChangeWidthAndHeight()
    Dim I As Long
      SetRowHeightMM 1, 42      ' Række 1 højde i mm.
  For I = 1 To 18
        SetColumnWidthMM I, 7.9    '  18 Kolonners bredde i mm.
    Next
End Sub
Avatar billede dsj1972 Mester
24. august 2008 - 13:01 #3
kabbak,

tak men det havde jeg også selv læst, og det er jo netop det som er mit problem, men desværre ikke noget som kan løse mit problem, nu er det heller ikke sikkert at det kan løses som jeg gerne vil have det men tænkte da lige at jeg lige måtte høre ekspertene først før jeg giver mig i kast med nødløsninger eller helt bortkaster idéen.
mvh dsj
Avatar billede dsj1972 Mester
24. august 2008 - 13:04 #4
Hov kabbak, det der du skrev til sidst ser da lidt interessandt ud, nu er jeg ikk så skrap til VBA, men går ud fra at jeg kan lave dit eks. på et ark, ved at højreklikke på ark og så vis programkode og så ellers kopiere dit eks. ind....eller hva??
Avatar billede kabbak Professor
24. august 2008 - 13:06 #5
tryk ALT + F11, så er du i editoren, vælg Insert > Module.

Sæt så koden ind der
Avatar billede kabbak Professor
24. august 2008 - 13:07 #6
luk igen på det øverste X, så er du tilbage, kør makroen ChangeWidthAndHeight
Avatar billede dsj1972 Mester
24. august 2008 - 13:13 #7
Jeg har lige sat det ind og det fint ud den ændre fint nok. Og nu skal jeg lige printe ud og måle felter, evt. ligge emner op oven på udprint for at se om det passer, men har lige opdaget at jeg ikk har emnerne her, så det bliver først mandag jeg lige vender tilbage, men det ser absolut lækkert ud, vender lige tilbage imorgen forhåbenligt med point til dig.

Hav en forsat god søndag!

mvh dsj
Avatar billede kabbak Professor
24. august 2008 - 13:19 #8
ok.
men ellers retter du her, det er 42 for  rækkehøjden og 7.9 for kolonnen, husk at bruge punktum, som decimaladskiller.

Sub ChangeWidthAndHeight()
    Dim I As Long
      SetRowHeightMM 1, 42      ' Række 1 højde i mm.
  For I = 1 To 18
        SetColumnWidthMM I, 7.9    '  18 Kolonners bredde i mm.
    Next
End Sub
Avatar billede dsj1972 Mester
25. august 2008 - 07:11 #9
Hejsa, så har jeg lavet en udprint af tabelen og prøvet og sammenligne med emner, og det passede ikke helt må jeg sige.....det virker ikke som om at det er mm den måler i, det bliver ihvertfald ikke rigtige mål på udprint, f.eks så er højden på række angivet til 42, men er faktisk kun omkring 40,8 mm og kolonner fra A-R (18 stk)
skulle være 7,9 mm pr. stk hvilket udregnet skulle blive 142,2, men faktisk målt er der fra A-R ca 149,5 mm, altså det ene sted bliver det mindre og det andet sted større og bliver naturligvis meget større da fejl tolerance bliver 18 gange større på kolonner.
Nongen idé om hvad det er som ikke lige passer?? - Mener det ser ikke ud som om at den tæller mm, men nok snare punkter eller pixel eller ihvertfald runder af til nærmeste punkt eller pixel størrelse (hvis du forstår hvad jeg mener)

Mvh dsj
Avatar billede dsj1972 Mester
25. august 2008 - 08:43 #10
Nu har jeg prøvet mig lidt frem, sådan nærmest stepvis baglæns for at se om jeg kunne ramme i omegnen af de 142,5 - 143,5 , men det opføre sig meget mærkeligt på nogle steder kan et step på 0.1 pludselig blive til flere mm i ændring på udprint.
Besynderligt, men jeg har studset lidt over om det kan have noget at gøre med at det er komma tal vi skriver i koden, men det er vel derfor der er brugt Double istedet for integer eller hva..... er ikk så skrap til VBA, men har da sinde at lære hvad jeg kan :-)

mvh dsj
Avatar billede kabbak Professor
25. august 2008 - 08:55 #11
Jaa, livet er måske så lunefuld at millimeter ikke kan omregnes til pixel. ??
Avatar billede dsj1972 Mester
25. august 2008 - 09:05 #12
Hmm, tjaee så kan man da i så fald stille sig spørgsmål om hvorfor nogen laver en kode som kan convertere pixel/punktstørrelser til mm ;-)
Avatar billede kabbak Professor
25. august 2008 - 09:09 #13
Jeg tror også at det har noget med skærm/printeropløsningen at gøre
Avatar billede kabbak Professor
25. august 2008 - 09:11 #14
Avatar billede dsj1972 Mester
25. august 2008 - 09:11 #15
Ja, det har jeg også selv tænkt på, og det ville da også være naturligt nok at der ville være en lille tolerance der, men det ændre jo ikke på at der pludselig er flere mm til forskel, til trods for at der kun er gået et step på 0.1 mm op eller ned.
Avatar billede dsj1972 Mester
25. august 2008 - 09:17 #16
Jamen denne side beviser jo netop at man godt kan omregne disse værdier, så problemet må jo ligge i hvordan programmet vil tolke resultat her af, som jeg tidligere har nævnt så virker det som om der bliver afrundet op eller ned alt efter størrelse.

Du kunne jo selv prøve koden på excel og lave ramme omkring og så printe ud og se hvad du måler dig frem til
Avatar billede dsj1972 Mester
25. august 2008 - 09:19 #17
iflg. omregneren så bliver : 7.9 millimeter = 29.858267717 pixel (X)
Avatar billede dsj1972 Mester
25. august 2008 - 11:15 #18
Har du prøvet at lave et eksempel, eller har du givet op?? ;-)
Avatar billede kabbak Professor
25. august 2008 - 11:46 #19
jeg er på arbejde, så har ikke tid ;-))
Avatar billede dsj1972 Mester
25. august 2008 - 12:05 #20
Tja, arbejde skal man jo :-)

God arbejds lyst
Avatar billede dsj1972 Mester
27. august 2008 - 13:07 #21
Hej Så er jeg tilbage igen, har imellemtiden forsøgt mig frem og tilbage uden gode resulter. Så det er blevet til at jeg er gået over i Word istedet og har lavet en tabel der, da word har mulighed for at opsætte rammer precis og efter fast størrelse i centimeter, det har excel ikke, da den altid vil tage antallet af tegn som sakl være i cellen i betragtning og derefter ændre størrelse.

Jeg aner ikke rigtig hvem som skal have point, for jeg syns du gjorde et godt forsøg ;-) så smid du bare et svar.

Jeg vil nu oprette et spm over i word delen istedet, for mangler lige lidt hjælp til noget auto indsættelse af dato+ nummer (som skal genereres)

mvh dsj
Avatar billede kabbak Professor
27. august 2008 - 13:11 #22
tag point selv, jeg kunne jo ikke løse det. ;-))
Avatar billede dsj1972 Mester
27. august 2008 - 13:44 #23
Ok, tak for din tid anyway!!

mvh dsj
Avatar billede dsj1972 Mester
31. august 2008 - 13:12 #24
Har lukket spm her og forsætter i andet spm:
http://www.eksperten.dk/spm/843227
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