25. marts 2002 - 22:26Der er
9 kommentarer og 2 løsninger
Lidt nørdet problem, måske til Richard :-)
Hejsa
Jeg sidder og fumler lidt med at lave et statistik regneark. Tanken er at jeg har skrevet en masse tjek spørgsmål ned, som jeg skal huske at gennemgå i diverse situationer. I hver enkelt sag skal jeg så svare på spørgsmålene i kolonnen til højre for. Dette går nogen lunde med at oprette valideringsfelter som liste, da der kun er begrænsede svar til hver spørgsmål.
Et af mine problemer er at jeg har oprettet 60 ark, hvor hvert ark er 1 sag. Jeg når nok ikke mere end 60 kunder på en dag jo :-) De første 2 kolonner i venstre side af HVERT ark repræsentere en oversigt over hvilke af de 60 sager/ark som er igang, afsluttet eller ubrugte endnu. Min tanke er at oprette ark 61 og her samle en statistik over værdierne for DET FELT I HVERT AF DE 60 ARK, som idendikerer igang, afsluttet eller ubrugt sag. Dette valg har jeg foreløbigt valgt at lave med en validerings liste for de 3 muligheder.
Det vil altså sige at når jeg i ark 34 sætter værdien til igang skal alle oversigterne i samtlige 60 ark opdateres med teksten IGANG ud for tal 34, i oversigtskolonnerne i venstre side. Jeg har skrevet alle tal fra 1-60 nemlig på alle 60 ark! :-)
Desuden vil jeg gerne have det således at feltet farves rødt når det er igang, grønt når det er afsluttet og en blålig farve når det er ubrugt endnu. Herved kan jeg hurtigt skimte i oversigten hvilke af de 60 sager som mangler afslutning f.eks.
Ydermere skal dette farveskift også forekomme i det felt på hvert af de 60 ark, hvor jeg vælger om det er igang, afsluttet eller ubrugt. Selve hovedfeltet.
Som man kan fornemme er jeg ude på dybt vand og igang med en vanskelig opgave for mig selv.
Desuden vil jeg gerne kunne føre statistik på hvor mange sager der har haft behov for hvilke indgreb jf tjek spørgsmålene. Det vil sige at hvis der over de 60 sager/ark har været 19 som har krævet indgrebet fra spørgsmål 36 skal der efter dagens dont være en statistik på at spørgsmål 36 har været benyttet 19 gange. Muligvis på et nyt statistik ark.
Jeg giver retfærdigt point til den/de der kommer med svarene! :-)
Jeg er klar over det er mange spørgsmål indenfor samme indlæg, men pointene gives jf. svarene. Jeg vil gerne oprette ekstra indlæg for at fordele flere point. :-)
Nej det er korrekt. Jeg gik dog udfra det ikke var gratis eftersom du fører virksomhed indenfor samme. Men jeg takker da mange gange, og vil sende dig mit foreløbige resultat :-)
Her er en begyndelse. Koden ændrer farver på alle aktuelle ark
Koden skal sættes ind i ThisWorkbook under det nøjagtige makronavn som jeg starter med:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim svar As Integer
navn = ActiveSheet.Name
'Fravælger de sidste ark Select Case navn Case "REF" 'Her sker ingenting Case "STAT" 'Her sker ingenting Case Else ' her sker det hele If Target = Range("L2") Then If Target = 1 Then farve = 3 'rød ElseIf Target = 2 Then farve = 4 'grøn Else farve = 8 'blå End If
'Sætter farve på det aktive ark Range("L2").Select Selection.Interior.ColorIndex = farve
'Laver det aktive arks navn om til et tal (det er fra starten en streng) svar = ActiveSheet.Name
'Finder den præcise celle der skal ændres Select Case svar Case 1 To 30 række = svar + 13 Kolonne = 2 Case 31 To 60 række = svar - 31 + 14 Kolonne = 3 End Select
'Ændrer celleren på alle ark - dog ikke de sidste For Each Sh In Worksheets Sh.Activate navn = Sh.Name Select Case navn Case "REF" Case "STAT" Case Else Sh.Cells(række, Kolonne).Select Selection.Interior.ColorIndex = farve End Select Next End If End Select End Sub
jeg har ikke sat ordene ind i cellerne, da farverne jo klart indikerer om en sag er i gang - men det kan sagtens bygges ind - jeg har jo fat i den aktuelle celle, så det er bare en enkelt linie mere *S*
Her er så koden til arket STAT, som er en nøjagtig kopi af de andre ark, så cellerne er placeret nøjagtigt ens:
Sub Statistik() Dim navn As String Dim Kolonne As Integer Dim x As Integer Dim y As Integer Dim Række As Integer Dim Navn1 As String Dim i As Integer Dim n As Integer Dim sh As Worksheet
'Der spares megen tid, når skærmen ikke skal opdateres hele tiden Application.ScreenUpdating = False
navn = ActiveSheet.Name Kolonne = 4 x = 0 ' forekomster y = 0 ' antal brugte ark - bruges ikke endnu...
'Løber de 4 kolonner i arket STAT igennem For i = 1 To 4 Kolonne = Kolonne + 3 Række = 13
'Løber de 29 rækker pr kolonne i arket STAT igennem For n = 0 To 29 Række = Række + 1 x = 0 ' forekomster y = 0 ' antal brugte ark
'Løber alle ark igennem For Each sh In Worksheets sh.Activate Navn1 = sh.Name Select Case Navn1 Case "REF" Case "STAT" Case Else If sh.Range("L2") = 1 Or sh.Range("L2") = 2 Then If sh.Cells(Række, Kolonne).Value <> "" Then x = x + 1 y = y + 1 Else y = y + 1 End If End If End Select Next ' næste ark Sheets(navn).Activate 'Skriver resultet af gennemløbet af alle ark i cellen Cells(Række, Kolonne) = x Next n ' næste række Next i ' næste kolonne
Application.ScreenUpdating = True
End Sub
P.s. Her er også den endelige kode til det første spørgsmål:
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range) Dim svar As Integer Dim navn As String Dim farve As Integer Dim Række As Integer Dim Kolonne As Integer Dim Navn1 As String
Application.ScreenUpdating = False
navn = ActiveSheet.Name
'Fravælger de sidste ark Select Case navn Case "REF" 'Her sker ingenting Case "STAT" 'Her sker ingenting Case Else ' her sker det hele If ActiveCell.Offset(-1, 0).Address = "$L$2" Then If Target = 1 Then farve = 3 'rød ElseIf Target = 2 Then farve = 4 'grøn Else farve = 8 'blå End If
'Sætter farve på det aktive ark Range("L2").Select Selection.Interior.ColorIndex = farve
'Laver det aktive arks navn om til et tal (det er fra starten en streng) svar = ActiveSheet.Name
'Finder den præcise celle der skal ændres Select Case svar Case 1 To 30 Række = svar + 13 Kolonne = 2 Case 31 To 60 Række = svar - 31 + 14 Kolonne = 3 End Select
'Ændrer cellerne på alle ark - dog ikke de sidste For Each sh In Worksheets sh.Activate Navn1 = sh.Name Select Case Navn1 Case "REF" Case "STAT" Case Else sh.Cells(Række, Kolonne).Select Selection.Interior.ColorIndex = farve End Select Next End If End Select
Jeg fik et par gode tips fra Flemmingdahl som jeg belønner!
RVM sendte et fuldkommen svar på mit spørgsmål, hvor det virker eksemplarisk! :-)
Tak for hjælpen, det var helt perfekt!
/247365 ;-)
Synes godt om
Ny brugerNybegynder
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.