Avatar billede ingenting Nybegynder
09. februar 2003 - 14:23 Der er 14 kommentarer

Hentning af data fra et ark til et andet

Jeg er ved at lave et ordre system, hvor jeg i ark to, har samtlige ordre. I ark1, vil jeg så godt hvis samtlige ordre, som er ens med dags dato!! Altså fx, hvis det kørte i dag, så skulle ark1 vise samtlige ordre som er oprettet den 09-02-2003. Hvordan klares dette?
Avatar billede sjap Praktikant
09. februar 2003 - 14:44 #1
Brug menuen Data/Filter/Avanceret filter. Her kan du angive dataområde, et kriterieområde, hvor der står dags dato, og så angive hvor resultatet skal kopieres hen.

Det foregår når du trykker på menuen, men opdateres ikke automatisk. Det er jeg ikke lige klar over om du har brug for, men det kan klares ved at du optager proceduren som en makro og laver en knap på formularen, der så afspiller proceduren.
Avatar billede ingenting Nybegynder
09. februar 2003 - 14:48 #2
Jeg har en formular, hvor jeg indtaster salg, hvor der er en gem knap, som søger for at smide dataene over i ark to!! Kan jeg ikke få denne gem knap til at opdatere ark1, med dags dato salg?

Min kode på gem knappen ser sådan ud:

Private Sub Gem_Click()
If Navn.Text = "" Then
    MsgBox "Patientens Navn skal udfyldes"
    Navn.SetFocus
    Exit Sub
    End If

If Dato = "" Then
    MsgBox "Dato skal udfyldes"
    Dato.SetFocus
    Exit Sub
    End If
   
If beløb.Text = "" Then
    MsgBox "Beløb skal udfyldes"
    beløb.SetFocus
    Exit Sub
    End If
   
If Ja.Value = True Then
    If Betaling = "" Then
      MsgBox "Der er valgt ja i betaling, så derfor skal betalingsmåde udfyldes."
      Betaling.SetFocus
      Exit Sub
      End If
      End If
     
If Worksheets("Ark2").Range("A2").Value = "" Then
  Worksheets("Ark2").Select
  Range("A2").Activate
Else
  Range("A2").CurrentRegion.Select
  ActiveCell.Offset(Selection.Rows.Count, 0).Activate
End If
With ActiveCell
  .Value = cpr.Text
  .Offset(0, 1).Value = Navn.Text
  .Offset(0, 2).Value = Dato
  .Offset(0, 3).Value = beløb.Text
If Ja.Value = True Then
    .Offset(0, 4).Value = Betaling.Text
ElseIf Nej.Value = True Then
    .Offset(0, 4).Value = "Skyldig"
End If
End With

Unload Me

End Sub

Private Sub Ja_Change()
If Ja.Value = True Then
  Betaling.Enabled = True
  Else
  Betaling.Enabled = False
  End If
End Sub
Avatar billede sjap Praktikant
09. februar 2003 - 14:53 #3
Øjeblik - så vender jeg tilbage med et forslag.
Avatar billede sjap Praktikant
09. februar 2003 - 15:11 #4
Du kan indsætte nedenstående kode til sidst i din egen kode (hvor du er sikker på at dine data er opdateret).

Sheets("Ark2").Columns("A:C").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Ark2").Range("E1:E2"), CopyToRange:=Sheets("Ark1").Range("A4"), Unique:=False

BEMÆRK:
Koden kopierer fra et faneblad med navnet "Ark2" til et faneblad med navnet "Ark1".
Data fra kolonne A til C medtages ved kopieringen.
I destinationsarket placeres data fra celle A4.
Kriteriet (idag) skal fremgå af celle E1:E2 i Ark2. I Celle E1 skal stå navnet på den kolonne, der sammenlignes med - f.eks. Dato (det skal være det samme navn ellers virker funktionen ikke!), og i E2 kan der stå =IDAG().
Avatar billede ingenting Nybegynder
09. februar 2003 - 15:18 #5
Det virker, men den tager kun dato med over, den skal også kopiere data fra de andre kolonner med.

Det ser sådan ud:
A          B              C              D              E
5454    54sd4a6sd5    09-02-2003    987523,25    Skyldig

Den skal altså tage alt fra kollonne a til e med, men den skal sortere efter kollonne C, og kun medtage dem med dags dato!!
Avatar billede sjap Praktikant
09. februar 2003 - 15:30 #6
Så ser koden således ud

Sheets("Ark2").Columns("A:E").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Ark2").Range("G1:G2"), CopyToRange:=Sheets("Ark1").Range("A4"), Unique:=False

Husk at kriteriet nu står i Ark2!G1:G2
Avatar billede sjap Praktikant
09. februar 2003 - 15:38 #7
Hmm, der virker faktisk kun hvis det, der står i forvejen bliver slettet, så prøv at indsætte følgende umiddelbart inden filteret (kræver at du ikke har andet stående i ark1 da hele arket slettes!!):

Sheets("Ark1").Select
Cells.Select
Selection.Delete Shift:=xlUp
Avatar billede ingenting Nybegynder
09. februar 2003 - 19:27 #8
Jeg forstår ikke rigtig hvad du mener med at kriteriet står i G1:G2. Jeg har intet stående i G kollonen??
Avatar billede ingenting Nybegynder
09. februar 2003 - 19:33 #9
Jeg har også sat al den kode ind, som du har skrevet i dine sidste to post, men den slettet jo samtidig al tekst som jeg har stående i ark1, det skal den ikke!!
Avatar billede ingenting Nybegynder
09. februar 2003 - 19:34 #10
Og jeg har stadig problemer med det som jeg skrev i min kommentar kl. 19.27...
Avatar billede sjap Praktikant
09. februar 2003 - 20:02 #11
Så er jeg tilbage igen.

19:27:13
Kriteriet er det at der i G1 skal stå dato (eller hvad der ellers står øverst i dit ark. I G2 skal der f.eks. stå =Idag().

19:33:52
Jeg advarede dig mod at den ville slette det hele. En anden mulighed er
    Sheets("Ark1").Select
    Range("A4:E100").Select
    Selection.ClearContents
Den vil slette alt i Ark1 i området A1:E100
Avatar billede ingenting Nybegynder
09. februar 2003 - 22:05 #12
Jeg når desværre ikke at teste mere i dag!! Jeg er heller ikke tilstede i morgen, så vender tilbage Tirsdag. Bare så du ved at jeg ikke har glemt dig. Jeg får nok brug for noget mere avanceret udvægelse, men det vil jeg fortælle dig om på tirsdag!!
Avatar billede sjap Praktikant
09. februar 2003 - 22:21 #13
Det er i orden. Men jeg er nok ikke på før om aftenen - så ved du det (men der kan selvfølgelig være andre, der vil deltage).
Avatar billede sjap Praktikant
19. marts 2005 - 18:44 #14
Ingenting > Skulle du ikke se at få lukket det her spørgsmål?
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