Avatar billede saxtus Nybegynder
14. juni 2004 - 12:46 Der er 17 kommentarer og
1 løsning

Udrtæk af formler

Jeg skal til at sætte mig ind i en MEGET stor tabel, og ville gerne vide hvordan jeg kan få lavet en oversigt over alle formlerne.

Gerne noget i stil med:
A2    =(G7/B43)+J4
A7    =......
og så videre

Også med under tabeller

Spørg hvis jeg skal uddybe det mere
Avatar billede tobler Nybegynder
14. juni 2004 - 12:52 #1
Du taster: Ctrl+Shift+` (Accent grave)
Avatar billede tobler Nybegynder
14. juni 2004 - 12:53 #2
På et dansk tastatur er det tegnet til venstre for backspace
Avatar billede saxtus Nybegynder
14. juni 2004 - 12:57 #3
Den har jeg prøvet med, men formlerne er for lange
Avatar billede asol Nybegynder
14. juni 2004 - 13:01 #4
Jeg er ikke helt med på hvad du mener...

Funktioner -> Indstillinger: Check 'Formler' under 'Vinduesindstillinger' på fanen 'Vis'
Avatar billede tobler Nybegynder
14. juni 2004 - 13:04 #5
Hvad mener du med at formlerne er for lange?
Kan du ikke se hele indholdet, så dobbelklik på overskriftslinien (f.eks. A og B) mellem to kolloner, så udvider kollonen sig til størrelsen af det længste felt i kollonen.
Avatar billede asol Nybegynder
14. juni 2004 - 13:05 #6
ups... trækker lige den kommentar til mig igen :-)
Avatar billede saxtus Nybegynder
14. juni 2004 - 13:05 #7
jeg kan godt følge dig, men det er ikke helt det jeg vil.

Mange af alle de formler jeg har fylder et par linier, så det vil næsten være umuligt med det andet

Det jeg mere tænkte på var om man kunne få alle formlerne for sig selv med deres placering.

Altså lidt i den stil med det jeg viste i toppen

A2    =(G7/B43)+J4
A7    =......
A43  =......
B6    =......
Avatar billede jpvj Nybegynder
14. juni 2004 - 13:09 #8
Kan du bruge nedenstående kode?
Den frasorterer værdier, dvs. celler med en fast værdi (<> en formel).

Function getColName(col_no)
  a = col_no Mod 26
  b = col_no \ 26
  If b > 0 Then st = Chr(65 + b)
  st = st & Chr(65 + a)
  getColName = st
End Function
Function getCellName(r, c)
    getCellName = getColName(c) & r
End Function
Sub showFormula()
    Worksheets("Ark1").Activate
    ActiveSheet.UsedRange.Select

    Dim s As Range
   
    Set s = Selection
    For r = 1 To s.Rows.Count
        For c = 1 To s.Columns.Count
            If s(r, c).Cells(1, 1).Formula <> "" & (s(r, c).Cells(1, 1).Value) And s(r, c).Cells(1, 1).Formula <> "" Then
                st = st & getCellName(r, c) & s(r, c).Cells(1, 1).Formula & vbCrLf
            End If
        Next c
    Next r
           
    MsgBox st
   
End Sub
Avatar billede jpvj Nybegynder
14. juni 2004 - 13:09 #9
Du kan naturligvis bruge strengen st til hvad du vil, ex. skrive den ned i en tekstfil...
Avatar billede tobler Nybegynder
14. juni 2004 - 13:34 #10
Du kan også lave denne funktion:

Function Visformel(a)
Visformel = a.Formula
End Function

Den virker ved at indtaste funktionen i en celle og i parantes den celle du vil ha' vist: =Visformel(A2)
Avatar billede saxtus Nybegynder
14. juni 2004 - 13:35 #11
hvor og hvordan skal det afvikles?? - tror du har fat i noget af det rigtige
Avatar billede tobler Nybegynder
14. juni 2004 - 13:42 #12
Jeg kører en engelsk version, så du må selv bruge fantasien til at oversætte hvordan, men jeg plejer at gøre sådan:

Tryk på Alt+F8 så kommer makromenuen frem. Hvis der er makroer i forvejen, vælger du en af dem og vælger Edit(rediger), derefter trykker Ctrl+End så du kommer til slutningen af filen, her indsætter du de tre linier med funktionen.

Hvis der ingen makroer, så meld lige tilbage.
Avatar billede bak Forsker
14. juni 2004 - 13:47 #13
Denne makro opretter et nyt ark og skriver de informationer (arknavn, celle
, formel) der er knyttet til det ark du stod på da du startede makroen
Den skriver udelukkende de celler der er formler i.

Sub get_all_formulas()
Dim ActivSh As Worksheet, NewSh As Worksheet
Dim rng As Range, c As Range
Dim x As Long

Application.ScreenUpdating = False
Set ActivSh = ActiveSheet
Set NewSh = Worksheets.Add
Set rng = ActivSh.UsedRange.SpecialCells(xlCellTypeFormulas, 23)
For Each c In rng
    x = x + 1
    NewSh.Range("a1").Offset(x, 0) = c.Parent.Name & ",  " & c.Address & ",
" & c.FormulaLocal
Next
NewSh.Columns("A:A").EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Avatar billede saxtus Nybegynder
14. juni 2004 - 14:01 #14
Bak -- det du skriver har jeg næsten fået til at virke, men synes ikke at den vil skrive hele formlen, den skriver kun hvor forlmel er og at det er en beregning.

Hvordan får jeg udtrukekt hele formlen
Avatar billede bak Forsker
14. juni 2004 - 14:09 #15
Det forstår jeg ikke lige. her funker den fint
Linien her var brækket, det er måske derfor
NewSh.Range("a1").Offset(x, 0) = c.Parent.Name & ",  " & c.Address & "," & .FormulaLocal


ellers prøv


Sub get_all_formulas()
Dim ActivSh As Worksheet, NewSh As Worksheet
Dim rng As Range, c As Range
Dim x As Long

Application.ScreenUpdating = False
Set ActivSh = ActiveSheet
Set NewSh = Worksheets.Add
Set rng = ActivSh.UsedRange.SpecialCells(xlCellTypeFormulas, 23)

For Each c In rng
    x = x + 1
    NewSh.Range("a1").Offset(x, 0) = c.Parent.Name & ",  " & c.Address
    NewSh.Range("a1").Offset(x, 1) = "'" & c.FormulaLocal
Next
NewSh.Columns("A:A").EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Avatar billede bak Forsker
14. juni 2004 - 14:10 #16
Skrivefejl
NewSh.Range("a1").Offset(x, 0) = c.Parent.Name & ",  " & c.Address & "," & c.FormulaLocal
Avatar billede saxtus Nybegynder
14. juni 2004 - 14:49 #17
nu virker det - du er sku dygtig :-)
Avatar billede bak Forsker
15. juni 2004 - 08:01 #18
ok :-)
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