26. juli 2007 - 13:15Der er
12 kommentarer og 1 løsning
Kopiere en Commandbutton??
Jeg vil gerne kopiere en Commandbutton1 ved at trykke på Commandbutton2, men det kan jeg åbenbart ikke! Jeg ville gerne bruge noget VBA kode til at løse problemet!
Den nye Commandbutton skal hedde "Commandbutton3" og indeholde det samme kode som "Commandbutton1" gør!
Fortsætter jeg med at trykke på Commandbutton2, tilføjes knapperne: "Commandbutton4", "Commandbutton5", "Commandbutton6 osv., ligeledes med samme kode som "Commandbutton1"
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.
With wks With .Range("a1:b2") Set OLEObj = .Parent.OLEObjects.Add _ (ClassType:="Forms.CommandButton.1", _ Link:=False, DisplayAsIcon:=False, _ Left:=.Left, Top:=.Top, _ Width:=.Width, Height:=.Height) End With
With .Parent.VBProject.VBComponents(.CodeName).CodeModule .InsertLines .CreateEventProc("Click", OLEObj.Name) + 1, _ "Msgbox ""Hi""" End With End With
End Sub
Du skal have givet tilladelse til Visual Basic projektet under "pålidelige kilder":
"Sådan aktiveres pålidelig adgang til Visual Basic-projekter:
Peg på Makro i menuen Funktioner, og klik derefter på Sikkerhed. Marker afkrydsningsfeltet Giv adgang til Visual Basic-projekt under fanen Pålidelige kilder. Yderligere oplysninger om at bruge metoden finder du ved at søge efter metodenavnet i Hjælp til Visual Basic."
Når jeg trykker på "Indsæt linie"; indsættes en linie lige oven over bare +1. fx hvis der trykkes på kanppen "Indsæt linie" herover sker dette (linie 103 bliver tilføjet):
Når jeg så trykker på "Indsæt Item-Gruppe" skulle dette gerne ske: Gruppen 200 bliver tilføjet og der kommer en ny "Indsæt linie"-knap der kan tilføje nye linier til 200-gruppen (201, 202, 203 osv)!!
Indsæt en commandbutton i dit ark Private Sub Indsaet_Gruppe_Click() Indsaet_Ny_Gruppe End Sub
Module1: Sub Indsaet_Ny_Gruppe() Dim Val, Celle As Variant, L As Long, Ny As Variant NyGruppe = Range("A65536").End(xlUp).Row + 1 For I = 1 To NyGruppe - 1 If IsNumeric(Range("A" & NyGruppe - I)) And Range("A" & NyGruppe - I) <> "" Then Celle = Range("A" & NyGruppe - I) If Len(Celle) = 3 Then Val = Left(Range("A" & NyGruppe - I), 1) Nuller = "00" End If If Len(Celle) = 4 Then Val = Left(Range("A" & NyGruppe - I), 2) Nuller = "00" End If
Pos = NyGruppe - I + 3
Exit For End If Next If Celle = "" Then Range("A1").Value = 100 Celle = 90 Pos = 1 Nuller = "00" End If L = Len(Celle) Ny = Val + 1 & Nuller Range("A" & Pos).Value = Ny Range("A" & Pos + 1).Select ActiveCell.Value = "Indsæt ny linie" ActiveCell.Name = "INDSAET" & Ny
End Sub
I ark1 modulet: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) On Error Resume Next CelleNavn = Target.Name.Name
If Left(CelleNavn, 7) = "INDSAET" Then NyVal = ActiveCell.Offset(-1, 0).Value + 1 Selection.Insert Shift:=xlDown ActiveCell.FormulaR1C1 = NyVal ActiveCell.Range("B1").Select End If End Sub
Du skal dermed blot dobbeltklikke på "Indsæt ny linie"-cellen for at indsætte en ny linie.
Jeg er lidt i tvivl om hvor jeg skal indsætte dette: ------------- I ark1 modulet: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) On Error Resume Next CelleNavn = Target.Name.Name
If Left(CelleNavn, 7) = "INDSAET" Then NyVal = ActiveCell.Offset(-1, 0).Value + 1 Selection.Insert Shift:=xlDown ActiveCell.FormulaR1C1 = NyVal ActiveCell.Range("B1").Select End If End Sub -------------
Du skriver "I ark1 modulet:" ...hvor finder jeg det henne?? (..spurgte amatøren!)
Når du går i VBA editoren i et tomt ark, har du ingen Module1 o.s.v. men blot
Ark1(Ark1) Ark2(Ark2) Ark3(Ark3) ThisWorkbook
Dobbeltklik på Ark1(Ark1). Indsæt koden.
Det svarer til det samme modul du ender i, hvis du indsætter et kontrolelement i et ark, f.eks en CommandButton1 i ark1, og dobbeltklikker på den i designtilstand. Det modul du dermed kommer ind i, er Ark1(Ark1).
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.