Avatar billede sjoran Nybegynder
12. september 2007 - 22:05 Der er 10 kommentarer og
2 løsninger

Flytte værdi til et andet ark

Jeg arbejder i to ark. Ark1 er et ordre/produktions ark. I dette ark er der 3 kolonner kolonne a = vare, kolonne b = ordreindgangsdato, kolonne c = produktionsdato.

I ark2 har jeg i kolonne a en kalender med en dato pr. række.

Det jeg gerne vil lave er et overblik i mit kalender ark, så den vare der kommer en ordre på bliver lagt over i kalender arket i kolonne b ud for den dato ordren blev lagt. Og det samme med produktionsdatoen. Hvis der er flere ordrer eller produktioner skal de ligges i den næste ledige celle ud for datoen i kalenderen.

I kalenderarket skal ordre celler farves røde og produktions celler farves grønne.

Kan det lade sig gøre, og evt. helt uden brug af VBA.
Avatar billede excelent Ekspert
12. september 2007 - 22:36 #1
I Ark2 celle B2 indsæt denne og kopier ned

=HVIS(ER.FEJL(SAMMENLIGN(A2;Ark1!$B$2:$B$500;0));"";INDEKS(Ark1!$A$2:$A$500;SAMMENLIGN(A2;Ark1!$B$2:$B$500;0)))
Avatar billede excelent Ekspert
12. september 2007 - 22:39 #2
og denne i Ark2 celle C2  (henter evt. produktionsdato)

=HVIS(ER.FEJL(SAMMENLIGN(A2;Ark1!$B$2:$B$500;0));"";INDEKS(Ark1!$C$2:$C$500;SAMMENLIGN(A2;Ark1!$B$2:$B$500;0)))
Avatar billede sjoran Nybegynder
12. september 2007 - 23:42 #3
Tak. Det ser ud til at kunne virke. Men hvad nu hvis der er to ordre datoer der er ens. Så vil jeg gerne have at den smider nummer 2 ud i den næste kolonne i ark2. Og hvad hvis der er så også er en produktionsdato der er den samme som de to ordredatoer, så skal den kunne smide denne ud i den næste ledige kolonne.

PS.
Der var fejl i koden til produktionsdato. Koden til at hente produktionsdato skal se sådan ud.
=HVIS(ER.FEJL(SAMMENLIGN(A2;Ark1!$C$2:$C$500;0));"";INDEKS(Ark1!$A$2:$A$500;SAMMENLIGN(A2;Ark1!$C$2:$C$500;0)))
Avatar billede excelent Ekspert
12. september 2007 - 23:53 #4
Hvis du har produktions dato i kolonne C så skulle den nu virke som jeg lavede den.
den du har ændret henter værdi i kolonne A, og der skulle vare være efter din beskrivelse.

men bortset fra det, så er jeg bange for at vi ikke undgår VBA
jeg har ikke umiddelbart en løsning på de evt. ekstra kolonner.

så hvis du kan leve med en makro, så indsæt denne i arkets kodemodul
(Højreklik på Ark1's fane, vælg vis programkode og indsæt kode der)
Koden starter når du indtaster nye varer i Ark1

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B2:C500")) Is Nothing Then Exit Sub

Sheets("Ark2").Range("B2:Q500").Clear
r1 = Sheets("Ark1").Cells(65500, 1).End(xlUp).Row
For t = 2 To r1
dato = Sheets("Ark1").Cells(t, 2).Value
r2 = Sheets("Ark2").Range("A2:A500").Find(dato, LookIn:=xlValues).Row
c2 = Sheets("Ark2").Cells(r2, 250).End(xlToLeft).Column + 1
Sheets("Ark2").Cells(r2, c2) = Sheets("Ark1").Cells(t, 1).Value
If Sheets("Ark2").Cells(r2, c2) = "" Then Sheets("Ark2").Cells(r2, c2) = "'"
Sheets("Ark2").Cells(r2, c2 + 1) = Sheets("Ark1").Cells(t, 3).Value
If Sheets("Ark2").Cells(r2, c2 + 1) = "" Then Sheets("Ark2").Cells(r2, c2 + 1) = "'"
Sheets("Ark2").Cells(r2, c2).Interior.ColorIndex = 3
Sheets("Ark2").Cells(r2, c2 + 1).Interior.ColorIndex = 4
Next

End Sub
Avatar billede sjoran Nybegynder
13. september 2007 - 08:25 #5
Hej Excelent. Jeg tænkte nok jeg ikke kunne slippe for VBA. Jeg har afprøvet dit eksempel og det fungerer fint, med små skønhedsfejl, som jeg selv kan fifle med at få løst. Bl.a. farver den også nogle tomme celler, hvor der ikke er hevet nogle værdier med over. Og det er i begge tilfælde værdien i kolonne a, altså varen, jeg gerne vil have med over i ark2. Farvekoden fortæller mig så om det er ordre eller produktion.

Jeg venter lige lidt med at give point, da jeg gerne vil se om der andre der kan løse den uden VBA.
Avatar billede excelent Ekspert
13. september 2007 - 17:19 #6
I Ark2 celle B2 indsæt :
=HVIS(TÆL.HVIS(Ark1!$B$2:$B$500;A2)>=1;INDEKS(Ark1!$A$1:$A$500;MINDSTE(HVIS(Ark1!$B$1:$B$500=A2;RÆKKE(Ark1!$A$1:$A$500));1));"")
I Ark2 celle C2 indsæt :
=HVIS(TÆL.HVIS(Ark1!$B$2:$B$500;A2)>=1;INDEKS(Ark1!$C$1:$C$500;MINDSTE(HVIS(Ark1!$B$1:$B$500=A2;RÆKKE(Ark1!$A$1:$A$500));1));"")
I Ark2 celle D2 indsæt :
=HVIS(TÆL.HVIS(Ark1!$B$2:$B$500;A2)>=2;INDEKS(Ark1!$A$1:$A$500;MINDSTE(HVIS(Ark1!$B$1:$B$500=A2;RÆKKE(Ark1!$A$1:$A$500));2));"")
I Ark2 celle E2 indsæt :
=HVIS(TÆL.HVIS(Ark1!$B$2:$B$500;A2)>=2;INDEKS(Ark1!$C$1:$C$500;MINDSTE(HVIS(Ark1!$B$1:$B$500=A2;RÆKKE(Ark1!$A$1:$A$500));2));"")
I Ark2 celle F2 indsæt :
=HVIS(TÆL.HVIS(Ark1!$B$2:$B$500;A2)>=3;INDEKS(Ark1!$A$1:$A$500;MINDSTE(HVIS(Ark1!$B$1:$B$500=A2;RÆKKE(Ark1!$A$1:$A$500));3));"")
I Ark2 celle G2 indsæt :
=HVIS(TÆL.HVIS(Ark1!$B$2:$B$500;A2)>=3;INDEKS(Ark1!$C$1:$C$500;MINDSTE(HVIS(Ark1!$B$1:$B$500=A2;RÆKKE(Ark1!$A$1:$A$500));3));"")

Alle formlerne skal afsluttes med CTRL+SHIFT+ENTER {}
kopier med fyldhåndtag så langt ned du har datoer i kolonne A

Farverne laver vi med Betinget formatering
Avatar billede excelent Ekspert
13. september 2007 - 17:20 #7
Husk lige at slette din kode i Ark1
det glemte jeg grrr så blev det en ommer :-)
Avatar billede sjoran Nybegynder
14. september 2007 - 08:27 #8
Tak for det. Hvad er det lige ctrl+shift+enter gør? For formlerne virker kun når man afslutter med det.

Læg et svar så giver jeg point.
Avatar billede excelent Ekspert
14. september 2007 - 15:17 #9
velbekom
ctrl+shift+enter laver en matiks formel, som beregner på flere celler i et hug
Avatar billede excelent Ekspert
14. september 2007 - 15:18 #10
og et svar
Avatar billede excelent Ekspert
26. september 2007 - 10:14 #11
husk lige at lukke
marker box med navn og klik accepter
Avatar billede sjoran Nybegynder
26. september 2007 - 11:19 #12
Sorry, troede jeg havde fået det gjort.
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