PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAHur skriver jag för att få till en slagremsa...Hur skriver jag för att få till en slagremsa...
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2009-01-31 06:12
 

hej alla och "ett nytt forum ?"

Jag har anledning att göra en sorts räknare med en inmatningsCell "D10", den enda olåsta på det i övrigt skyddade och låsta arket, jag kallar det Blad2. I cell "D10" skriver jag in ett värde och meningen är att jag skall få ut det värdet i en ny cell 3 rader under D10, alltså i cell D13 samt nollställa cell D10. När jag vidare matar in ännu ett värde i D10 skall det hamna ytterligare 3 rader under den förra cellen, alltså i cell D16, o.s.v.

Mitt problem är att koden jag skriver in på Blad2 inte fattar att jag skrivit in ngt i cell D10, det fungerar bara om jag först skriver in ett tal i D10 och sen stegar med F8 i koden för att sen, när F8 stegats klart och D10 blivit noll - då matar jag in ett nytt värde och stegar med F8... Jag hoppas att jag kan få till den yttre loopen så hela körningen kan avslutas med Escape ??

Kan det inre makrot bli ngt sorts evighetsloop som bara bryts av Enter - jag läste någonstans att man kunde utvärdera värdet av en tangentnedrtyckning där Enter hade sitt eget värde, hexadecimalt och Esc ett annat. Jag tänker då att när jag skrivit in mitt värde i D10 och när jag trycker Enter rasslar makrot iväg och lägger ut värdet för att sen återgå till evighetsloopen tills nästa värde matats in och Enter tryckts... Och att hela körningen slutligen kan avslutas med Esc ??

Jag gissar att jag måste göra ngn sorts funktion i en modul för att detta skall fungera men jag har ingen aning om hur denna funktion skall skrivas ??

vänliga hälsningar   /fleXcel

Dim vad As Integer

Sub whatEver_click()
   
    I = 13
   
    Do Until Worksheets("Blad2").Cells(10, 4) = "Escape"
   
        Do Until Worksheets("Blad2").Cells(10, 4).Value = 0 or "Escape"

            If Worksheets("Blad2").Cells(10, 4).Value > 0 Then
                vad = Worksheets("Blad2").Cells(10, 4).Value
                I = I + 3
                'Worksheets("Blad2").Cells(10, 4) = 0
            End If
            Worksheets("Blad2").Cells(I, 4) = vad

        Loop
    Loop

End Sub

 

Nytt inlägg
 2009-01-31 09:57
 
 Ändrad av Anna   på 2009-01-31 09:57:59

Hej!

Om jag har förstått problemet rätt så behöver du köra koden varje gång du skriver ett nytt värde i cell D10. För att det ska fungera måste du lägga koden i själva bladobjektet och använda ett event som heter Worksheet_Change. Om du inte har några andra värden i kolumn D kan du varje gång som koden körs kolla vilken som är den sista cellen med data och bara addera 3 rader, se nedan.

/Anna

Kopiera in koden i objektet Blad2:

 

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim vad As Integer
       
    If Target.Address = "$D$10" And Blad2.Range("D10") <> 0 Then    'Kör koden när cell D10 ändras
        Blad2.Unprotect 'Lås upp bladet för att kunna skriva till det
       
        'Kolla sista raden med data i kolumn D
        Blad2.Columns("D").Select
        i = Selection.Find("*", [D1], , , xlByRows, xlPrevious).Row
           
        vad = Worksheets("Blad2").Cells(10, 4).Value
        i = i + 3
       
        Worksheets("Blad2").Cells(i, 4) = vad
        Worksheets("Blad2").Cells(10, 4) = 0
       
        Blad2.Range("D10").Select
        Blad2.Protect
    End If

End Sub


################# Anna Degerman Rosén #################

Anna Degerman Rosén

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Nytt inlägg
 2009-01-31 17:18
 

Anna - Hej och Tack !

Klockrent ! Jag tog bort UnProtect och Protect och lade till Application.ScreenUppdating = False för att

få det lite renare vid själva hanteringen. Sen låser jag upp, resp låser arket när jag kommer in och går

ur det. Cellerna för själva slagremsan kan jag i och för sig ha olåsta. Tusen Tack för Din hjälp.

               /fleXcel

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim vad As Integer
   
    Application.ScreenUpdating = False
       
    If Target.Address = "$D$10" And Blad2.Range("D10") <> 0 Then    'Kör koden när cell D10 ändras
'        Blad2.Unprotect 'Lås upp bladet för att kunna skriva till det
       
        'Kolla sista raden med data i kolumn D
        Blad2.Columns("D").Select
        i = Selection.Find("*", [D1], , , xlByRows, xlPrevious).Row
           
        vad = Worksheets("Blad2").Cells(10, 4).Value
        i = i + 3
       
        Worksheets("Blad2").Cells(i, 4) = vad
        Worksheets("Blad2").Cells(10, 4) = 0
       
        Blad2.Range("D10").Select

    End If
'    Blad2.Protect
End Sub

Nytt inlägg
 2009-03-04 21:28
 

Hej, jag förstår att du är insatt i en del kring VBA och - problemet har jag i datorn på jobbet - och kommer att komplettera denna fråga med mitt specifika ärende. Det handlar ursprungligen om en listBox som jag skall hämta in namn till, namn men även adresser. Adresserna redovisas inte i listboxen, där ligger bara namnet. Men när jag skall hämta namnen till listboxen så konverterar jag addressen med en särskild snurra för att den skall passa mina syften... Problemet är när jag sen adresserar - då skall vissa sidor (kanske bara en sida ?) i min workbook uppdateras och jag förstår inte varför ?? Men som sagt, jag återkommer med mitt specifika problem från min arbetsplats. Kan jag skicka detta på en specifik adress direkt ?   vänliga hälsningar  /fleXcel

 

Nytt inlägg
 2009-03-05 15:16
 

Hej!

Det går bra att maila på anna.degerman@xls.se

/Anna


################# Anna Degerman Rosén #################

Anna Degerman Rosén

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAHur skriver jag för att få till en slagremsa...Hur skriver jag för att få till en slagremsa...

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter