Avatar billede denero Juniormester
24. marts 2009 - 10:35 Der er 8 kommentarer og
1 løsning

Indsætte data i første ledige celle efter kol. L med betingelse i kol. B

1.    På et ark, hvor hver række præsenterer dataoplysninger om forskellige lokaliteter, skal jeg en gang imellem indsætte den samme oplysning i første ledige celle efter kolonne L i alle rækker, dog betinget af et bestemt "navn" er til stede i kolonne B. Jeg laver en makro til hvert "navn", som så hver skal aktiveres af en knap med det pågældende navn.

2.    Mulighed for at fortryde handlingen.

3.    Mulighed for at gøre det i alle rækker - altså indsætte i første ledige celle efter kolonne L, bare der er tekst i kolonne B.

4.    Mulighed for at fortryde handlingen.

Data, der skal indsættes, hentes i celle DL1.
Avatar billede supertekst Ekspert
24. marts 2009 - 11:07 #1
Har du tænkt på anvemdelse af en Userform m/en liste over navne i stedet for en knap pr. navn?

(Nu ved jeg jo ikke hvor mange der er tale om)
Avatar billede denero Juniormester
24. marts 2009 - 12:19 #2
Jo, det har jeg. Der er tale om 8 navne - 9 med den, som skal tilføje data ved alle.
Avatar billede supertekst Ekspert
24. marts 2009 - 14:06 #3
Dim række, Kolonne
Dim antalRækker, dl1Værdi, førsteKolonne
Private Sub CommandButton1_Click()                  'INDSÆT
    If Me.ListBox1.ListIndex > -1 Then
        bværdi = LCase(Me.ListBox1)
        Traverser bværdi, True
    End If
End Sub
Private Sub CommandButton2_Click()                  'FORTRYD
    If Me.ListBox1.ListIndex > -1 Then
        bværdi = LCase(Me.ListBox1)
        Traverser bværdi, False
    End If
End Sub
Private Sub Traverser(bværdi, aktion)
Dim celleB
    For række = 1 To antalRækker
        celleB = LCase(Cells(række, 2))
       
Rem Findes den valgte værdi i kolonne B
        If (bværdi = "alle" And celleB <> "") Or celleB = bværdi Then
            førsteKolonne = findFørsteKolonne
           
Rem indsættelse eller fortryd
            If aktion = True Then
Rem - INDSÆT
                Cells(række, førsteKolonne) = dl1Værdi
            Else
                If Cells(række, førsteKolonne - 1) = dl1Værdi Then
Rem - FORTRYD
                    Cells(række, førsteKolonne - 1) = ""
                End If
            End If
        End If
    Next række
End Sub
Private Sub ListBox1_Click()                        'bVærdi er valgt
    sætKnapVærdi True
End Sub
Private Sub UserForm_activate()
    antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
    dl1Værdi = activesheet.Range("DL1")
   
Rem Indsæt tekster
    With UserForm1.ListBox1
        .AddItem "Alle"
        .AddItem "Aaaa"
        .AddItem "Bbbb"
        .AddItem "Cccc"
        .AddItem "Dddd"
        .AddItem "Eeee"
        .AddItem "Ffff"
        .AddItem "Gggg"
    End With
   
    sætKnapVærdi False
End Sub
Private Sub sætKnapVærdi(knapværdi)
    Me.CommandButton1.Enabled = knapværdi
    Me.CommandButton2.Enabled = knapværdi
End Sub
Private Function findFørsteKolonne()                'efter L (=M)
    For Kolonne = 13 To 240
        If Cells(række, Kolonne) = "" Then
            findFørsteKolonne = Kolonne
            Exit Function
        End If
    Next Kolonne
End Function
Avatar billede supertekst Ekspert
24. marts 2009 - 14:07 #4
Eller send en mail - så returnere jeg filen inkl. Userform
Avatar billede denero Juniormester
24. marts 2009 - 15:40 #5
Hmmm - hvordan gør jeg, er ikke så dreven.
Avatar billede supertekst Ekspert
24. marts 2009 - 16:15 #6
Min mail-adresse findes under min profil...
Avatar billede denero Juniormester
25. marts 2009 - 12:35 #7
ok - kom lidt for sent ud af røret i forhold til dit forrige indlæg. Jeg havde ikke set, du tilbød, at jeg kunne sende den - det er gjort.
Avatar billede denero Juniormester
26. marts 2009 - 11:17 #8
Har endelig haft tid - det virker perfekt. Ligger du et svar.
Avatar billede supertekst Ekspert
26. marts 2009 - 11:25 #9
Fint - jeg lægger et svar...
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