I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Det var for at undgå at skrive Sheets("Beregninger").Range("c27") så mange gange Vil det sige at hvis jeg ændre min makro til nedenstående, så virker den?:
Set ActiveWorkbook.Sheets("Beregninger").Range("C27") = Version <---- ændret If Version < 1 Or Version = "" Then Version = 1 Else Version = 2 End If
Flemmingdahl> det er ok, men har jeg så ikke problemer med ELSE IF?
Jeg får sandsynligvis nok flere værdi-muligheder i cellen, så der kan komme til at stå:
With ActiveWorkbook.Sheets("Beregninger").Range("C27") If .Value < 1 Or .Value = "" Then .Value = 1 Else if .. et eller andet.. .Value = 2 Else if .. et eller andet.. Else .. et eller andet.. End If End With
Nej for .Value vil jo altid være den værdi der er i cellen...
With ActiveWorkbook.Sheets("Beregninger").Range("C27") If .Value < 1 Or .Value = "" Then .Value = 1 Else if .Value ="Peter" Then .Value = "Søren" Else if .Value = 3 Then .Value = 4 Else .. et eller andet.. End If End With
eller
With ActiveWorkbook.Sheets("Beregninger").Range("C27") Select Case .Value Case Is < 1 Or "" .Value = 1 Case Is = 1 .Value = 2 Case Is = 2 .Value = 3 Case Else .Value = 9 End Select End With
Den har jeg før fravalgt, fordi jeg havde problemer med at kalde en anden procedure i en case. Kan man det?
Jeg får en fejl i Case Is < 1 Or "" - Type mismatch (Error 13)
Min procedure ser således ud: Public Sub Opdatering() With Workbooks("Stamdata").Sheets("Beregninger").Range("C27") Select Case .Value Case Is <= 1 Or "" .Value = 1 Case Is = 2 .Value = 2 Case Else Call NyMakro End Select End With End Sub
Det kan jeg godt fortælle dig.. Skriv Null i stedet for "" det vil løse dit problem..
Så den rigtige kode er:
Public Sub opdatering() With ActiveWorkbook.Sheets("Beregninger").Range("C27") Select Case .Value Case Is < 1 Or Null .Value = 1 Case Is = 1 .Value = 2 Case Is = 2 .Value = 3 Case Else .Value = 9 End Select End With End Sub
Dim rBeregn as Range Set rBeregn = Sheets("Beregninger").Range("C27")
Den længere Dim wbActive As Workbook Dim wsBeregn As Worksheet Dim rBeregn As Range Set wbActive = ActiveWorkbook Set wsBeregn = wbActive.Sheets("Beregninger") Set rBeregn = wsBeregn.Range("C27")
Flemmingdahl> Du bliver altså nødt til at være mere specefik, for jeg får stadig fejl: Prøv lige og se her:
Public Sub OpdateringAfVersion() 'Denne procedure skal styre versionerne 'Der ses efter hvilken version, der hentes over fra 'Beregninger. Celle C27 i skatteregnearket
'Besked sidst i processen om at der nu er opdateret Dim OpdtSkat As Variant OpdtSkat = Worksheets("Beregninger").Range("C28") Dim OpdtStam As Variant OpdtStam = Worksheets("Beregninger").Range("C23") Dim VersionSkat As Variant VersionSkat = Worksheets("Beregninger").Range("C27") Dim VersionStam As Variant VersionStam = Worksheets("Beregninger").Range("C22") Dim sLangTekst As String Dim Opdateringsår As Variant Opdateringsår = Worksheets("Beregninger").Range("C28")
If OpdtSkat = OpdtStam And VersionSkat = VersionStam Then
Application.ScreenUpdating = False 'Besked Om at der ingen opdateringer er sLangTekst = "Der er ingen opdateringer til rådighed!" & vbNewLine sLangTekst = sLangTekst & "" & vbNewLine sLangTekst = sLangTekst & "Skattebergningen er opdateret til og med år " & Opdateringsår & "!" & vbNewLine sLangTekst = sLangTekst & "" & vbNewLine sLangTekst = sLangTekst & "Mener du der bør være nye satser eller andre " & vbNewLine sLangTekst = sLangTekst & "ændringer, så kontakt den systemansvarlige!" & vbNewLine IngenOpdatering = MsgBox(sLangTekst, vbOKOnly + vbInformation, "Ingen opdatering")
Else
'Forklaring mangler! If VersionStam <= 1 Or "" Then Call Version2 Else 'Case Else Call OpdateringAfStamdata End If
Så må vi jo se om den gamle revisorunderviser kan hente noget pædagogik frem igen :-)
For at din if sætning skal virke skal der stå: If VersionStam <= 1 Or VersionStam = "" Then
Denne her virker hos mig Public Sub OpdateringAfVersion() 'Denne procedure skal styre versionerne 'Der ses efter hvilken version, der hentes over fra 'Beregninger. Celle C27 i skatteregnearket
'Besked sidst i processen om at der nu er opdateret Dim OpdtSkat As Variant Dim OpdtStam As Variant Dim VersionSkat As Variant Dim VersionStam As Variant Dim Opdateringsår As Variant
If OpdtSkat = OpdtStam And VersionSkat = VersionStam Then
'Besked Om at der ingen opdateringer er MsgBox "Der er ingen opdateringer til rådighed!" & _ vbNewLine & vbNewLine & _ "Skattebergningen er opdateret til og med år" & Opdateringsår & "!" & _ vbNewLine & vbNewLine & _ "Mener du der bør være nye satser eller andre" & vbNewLine & _ "ændringer, så kontakt den systemansvarlige!", _ vbOKOnly + vbInformation, "Ingen opdatering"
Else
'Forklaring mangler! If VersionStam <= 1 Or VersionStam = "" Then Call Version2 Else 'Case Else Call OpdateringAfStamdata End If
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.