14. august 2010 - 10:42Der er
18 kommentarer og 1 løsning
Gemme data fra dags dato
Kan jeg på nogen måde logge data fra dags dato på et aandet ark? Har set et sted hvor man kunne trykke på en knap(rude) og så gemte man data på andet ark, og næste gang der blev trukket gemte excel i næste række
Hej Nicolai De data som skal gemmes er på ark1, og skal gemmes på ark2 og der skulle stå "næste gang der bliver trykket, gemmer excel i næste række på ark2"
EKS. 100 1,3 6,8 0,3 1,8 0,0 39,1 Hvert tal står i hver sin rude i ark1 og skal "logges" i ark2 på samme måde det står i ark1
VBA (Visual Basic for Applications) er et program i Officepakken som bl.a. bruges til at lave funktioner/programmering - også kaldet "makroer".
Det du gør i Excel er at trykke på fanen -Udvikler- og så vælge -Visual Basic-. Det åbner et nyt vindue - VBA. For at du kan lave en funktion (makro) skal du i VBA trykke på -Insert- og vælge -Module- - det åbner en rude hvor du kan skrive din funktion - altså programmere din makro.
Alle makroer starter med at man skriver ordet "Sub", trykker mellemrum og giver makroen et navn, f.eks. "Makro1". Navnet kan ikke indeholde mellemrum, så hvis du skriver flere ord skal du bruge "underscore"-tegnet, f.eks. "Sub dags_dato". Når du har gjort det trykker du enter og ser at VBA indsætter "End sub".
Imellem "Sub" og "End sub" indsætter du din funktion - altså den jeg har skrevet ovenfor. Den fortæller computeren hvad den skal gøre når du kører makroen.
Det næste du gør at at gå ind i Excel igen og (stadig under fanen -Udvikler-) vælger -Indsæt- og i øverste venstre hjørne vælger knap. Knappen indsætter du hvor du selv synes. I det vindue der åbnes vælger du hvilken makro knappen skal køre - her dobbeltklikker du på det navn som du har givet makroen og voila, så skulle det gerne virke.
Klik på knappen i øverste venstre hjørne (Microsoft Office-knappen), og klik på Excel-indstillinger nederst til højre. Marker derefter -Vis fanen Udvikler-.
Jeg skal have logget ruderne C86:I86 fra ark1 De skal gemmes i ark3, det er tomt lige nu så kan ligges hvor som helst. kunne være C1:I1 Hvordan skulle hele koden se ud så??
Nu har jeg næsten fået det til at virke. Jeg får ikk de tal til at stå som jeg gerne vil. 16-08-2010 #REFERENCE! #REFERENCE! #REFERENCE! #REFERENCE! #REFERENCE! #REFERENCE!
Hvor det skulle være 16-08-2010 36,1 574,4 5,0 53,3 0,0 2594,0
Der hvor der står #referance er en sum af nogle tal.
Jeg kunne rigtig godt tænke mig at lære det selv.. Men vil gerne have din hjælp. Der er en del der skal laves før mit projekt er færdig endnu, og den her kode er kun lidt af det :-) Du må meget gerne sende den testfil til at starte med ;-)
Private Sub cmdLogKostForIdag_Click() Dim r As Integer
'sæt Excel´s opdatering ud af kraft Application.ScreenUpdating = False
'kopier cellerne "C92:I92" på Kostplan Sheets("Kostplan").Range("C92:I92").Copy
'gør Kostlog til det aktive ark Sheets("Kostlog").Activate
'vælg celle "B" i fjerde række ActiveSheet.Range("B4").Select
'hvis den aktive celle er tom If ActiveCell.Value = "" Then
'indsæt det kopierede, startende fra den aktive celle ActiveCell.PasteSpecial
'fjern kopimarkeringen fra Kostplan Application.CutCopyMode = False
'gør Kostplan til det aktive ark Sheets("Kostplan").Activate
'vælg celle "C92" på det aktive ark Range("C92").Select
Else
'tildel variablen r, rækkenummeret på sidste række indeholdende data r = ActiveSheet.Range("C65536").End(xlUp).Row
'vælg celle "B" i rækken efter sidste række indeholdende data ActiveSheet.Range("B" & r + 1).Select
'indsæt det kopierede, startende fra den aktive celle ActiveCell.PasteSpecial
'fjern kopimarkeringen fra Kostplan Application.CutCopyMode = False
'gør Kostplan til det aktive ark Sheets("Kostplan").Activate
'vælg celle "C92" på det aktive ark Range("C92").Select
End If
'slå Excel´s opdatering til igen Application.ScreenUpdating = True End Sub
Med venlig hilsen, Nicolai
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.