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.
hejsa måske denne kode kan bruges Sub beskedboks() ' viser beskedboks hvis celle = 1 Dim b As Integer Range("A40").Select Do Until ActiveCell.Value = "" If ActiveCell.Value <> 1 Then ActiveCell.Offset(1, 0).Select Else b = ActiveCell MsgBox "Der står " & b & " i cellen", vbOKOnly ActiveCell.Offset(1, 0).Select End If Loop Range("A39").Select
Hvis din aktive celle må flettes med nabo cellerne ? Så prøv følgende VBA kode.
I eksemplet aktiveres koden hver gang værdien i celle A1 ændres. Er værdien i cellen 1 ... flettes cellerne A1-D1. Er værdien ikke 1 ... genetableres cellerne.
Kopier koden ind bag det aktuelle ark.
-------------
Private Sub Worksheet_Change(ByVal Target As Range)
'hvis celle A1 er den aktive celle If Target.Address = "$A$1" Then
'hvis værdien i den aktive celle er 1 If Target.Value = 1 Then
'vælg og merge området fra og med den aktive celle til og med 3 kolonner til højre ActiveSheet.Range(Target, Target.Offset(0, 3)).Select Selection.Merge
'vælg den aktive celle ActiveCell.Select
'ellers Else
'vælg og merge området fra og med den aktive celle til og med 3 kolonner til højre ActiveSheet.Range(Target, Target.Offset(0, 3)).Select Selection.UnMerge
Alle felter i regenearket har en udregning, men der vil altid være plads til at sammenflette celler, hvis bare at cellerne kommer tilbage det oprindelige igen.
Men jeg kan ikke få din kode til at virke (Jeg er ikke på hjemmebane i VBA)
Fejlmeddelse Obejct Required If Target.Address = "$A$1" Then
Jeg har skrevet et 1-tal i celle A1.
Jeg skal også have det til at virke på hele arket.
Du kan evt. prøve følgende kodestump ... som er en kopi af #4, hvor Target er byttet ud med Avtivecell.
På dit pågældende ark/sheet ... Tast Alt + F11 ... hvorefter VBA editoren forhåbentligt åbner :o)
Dobbeltklik på det aktuelle arknavn (typisk i vinduet til venstre?)
Vælg arkets Change hændelse (typisk i dropdown menuen øverst til højre)
Kopier nedenstående kode ind mellem linierne:
Private Sub Worksheet_Change(ByVal activecell As Range)
og
End Sub
---------------------------
'hvis celle A1 er den aktive celle If activecell.Address = "$A$1" Then
'hvis værdien i den aktive celle er 1 If activecell.Value = 1 Then
'vælg og merge området fra og med den aktive celle til og med 3 rækker ned ActiveSheet.Range(activecell, activecell.Offset(0, 3)).Select Selection.Merge
'vælg den aktive celle activecell.Select
'ellers Else
'vælg og merge området fra og med den aktive celle til og med 3 rækker ned ActiveSheet.Range(activecell, activecell.Offset(0, 3)).Select Selection.UnMerge
For go´ ordens skyld så kommer her lige koden, som opretter, farvelægger og formaterer tekstboksene på dit regneark, hvis den enkelte celleværdi er 1:
----------
'Indsæt tekstboks procedure Sub IndsætTekstboks()
'for hver celle i området "A1:H5" på det pågældende ark For Each cell In ActiveSheet.Range("A1:H5")
'hvis celleværdien er 1 If cell.Text = "1" Then
'vælg cellen cell.Select
'tilføj tekstboks over den valgte celle .... Bredden på tekstboksen bestemmes af tallet i 4. argument (her 50) With ActiveSheet.Shapes.AddTextBox(msoTextOrientationHorizontal, activecell.Left, activecell.Top, 50, activecell.Height)
'fyld tekstboksen med den ønskede RGB farve .Fill.ForeColor.RGB = RGB(192, 192, 192)
'skriv den underliggende celles værdi i tekstboksen .TextFrame.Characters.Text = cell.Value
'kursiv formatering af teksten .TextFrame.Characters.Font.Italic = True
'fed formatering af teksten .TextFrame.Characters.Font.Bold = True
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.