Avatar billede thums Praktikant
14. oktober 2003 - 15:45 Der er 10 kommentarer og
1 løsning

Macro Programmering - Indsæt en "ligning" i en celle

Problemet består i at den ikke gider indsætte det statement som jeg vil have den til.

er der nogen af jer der hurtigt kan fortælle mig hvor den nægter at tage den når den med glæde tager en normal tekst-streng?

Sub indsæt()
'
' indsæt Makro
' Makro indspillet 10-10-2003 af Thomas Jørgensen
'

'
    Selection.EntireRow.Insert
    Range("A" & ActiveCell.Row & ":J" & ActiveCell.Row).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    celle = "H" & ActiveCell.Row
    Range(celle).Select
    argument = "HVIS(E"
    Cells(ActiveCell.Row, ActiveCell.Column) = argument
End Sub
Avatar billede kabbak Professor
14. oktober 2003 - 15:54 #1
en makro taler engelsk

et eksempel på en hvis sætning

Sub Makro1()

    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=IF(R[-1]C[3]<>"""",1,2)"
End Sub

som i regnearket ser sådan ud
=HVIS(E1<>"";1;2)
Avatar billede kedde65 Praktikant
14. oktober 2003 - 16:05 #2
Du kan også bare bruge denne linie.

Cells(ActiveCell.Row, ActiveCell.Column).Formula = "=if(a1=1,1,2)"

kabbak siger er også rigtigt, men det er den gamle måde at referere til celler på vha. excel. Den er ved at udgå - jvf. MS dokumentationen.

VH CK
Avatar billede thums Praktikant
14. oktober 2003 - 16:05 #3
okay... virker den engelske version så også en en dansk Excel??
jeg har brugt den danskeHvis indtil videre i regnearket uden problemer..
Avatar billede kabbak Professor
14. oktober 2003 - 16:07 #4
Makro og VBA programmering er altid engelsk, også i danske
Avatar billede thums Praktikant
14. oktober 2003 - 16:18 #5
Stadigvæk samme problem..... her under den rettede kode

Sub indsæt()
'
' indsæt Makro
' Makro indspillet 10-10-2003 af Thomas Jørgensen
'

'
    Selection.EntireRow.Insert
    Range("A" & ActiveCell.Row & ":J" & ActiveCell.Row).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    celle = "H" & ActiveCell.Row
    Range(celle).Select
    argument = "=IF(E" & ActiveCell.Row & "*F" & ActiveCell.Row & ">0;E" & ActiveCell.Row & "*F" & ActiveCell.Row & ";" & Chr(34) & Chr(34)
    Cells(ActiveCell.Row, ActiveCell.Column) = argument
End Sub
Avatar billede thums Praktikant
14. oktober 2003 - 16:19 #6
også med .formula muligheden... har lige testet den
Avatar billede thums Praktikant
14. oktober 2003 - 16:21 #7
men når jeg bruger "=if(a1=1,1,2)" formularen virker det.. hjælper dog ikek vildt meget da det er denne formular jeg skal bruge.. :)
"=IF(E" & ActiveCell.Row & "*F" & ActiveCell.Row & ">0;E" & ActiveCell.Row & "*F" & ActiveCell.Row & ";" & Chr(34) & Chr(34)
Avatar billede kabbak Professor
14. oktober 2003 - 16:48 #8
har lige rettet de sidste 2 linier, der var fejl

  argument = "=IF(E" & ActiveCell.Row & "*F" & ActiveCell.Row & ">0,E" & ActiveCell.Row & "*F" & ActiveCell.Row & "," & Chr(34) & Chr(34) & ")"
  ActiveCell.Formula = argument
Avatar billede kabbak Professor
14. oktober 2003 - 16:49 #9
Cells(ActiveCell.Row, ActiveCell.Column)

er det samme som

ActiveCell
Avatar billede thums Praktikant
14. oktober 2003 - 16:51 #10
Virker nu mange takker kabbak
Avatar billede kabbak Professor
14. oktober 2003 - 16:53 #11
selv tak
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
Kurser inden for grundlæggende programmering

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