28. oktober 2005 - 18:28Der er
39 kommentarer og 1 løsning
Kopier variable celler over i et andet ark ved hjælp af vba
Hej med Jer
Jeg har et regneark hvor jeg har oprettet en medarbejderdatabase.
Kolonne A indeholder et forløbende "ID-nr." Kolonne B indeholder "Medarbejdernr" Kolonne C indeholder "Fornavne" Kolonne D indeholder "Efternavne" etc. etc. Kolonne M Indeholder "Holdnavn" (Datavaldiering: Aftenhold, Nathold; Daghold) Kolonne P indeholder "kommentar" (Eks.: Fri Man- og Tirsdag)
Dataene i Kolonne M varierer fra Uge til Uge.
Jeg vil gerne have et kolonne B,C,D,M og P bliver kopieret automatisk over i ARK3. Således at ARK 3 bliver udfyldt udfra betemte kriterier fra Kolonne
A4 B4 C4 D4 E4 Nr. Navn Efternavn Kommentar 1 888 Jan Pedersen Fri Mandag 2
Kolonne B4:B??? viser alle "Medarbejdernr". på Dagholdet Kolonne C4:C??? viser alle "Navne". på Dagholdet Kolonne D4:D??? viser alle "Eftenavne". på Dagholdet Kolonne E4:E??? viser alle "Kommentar". på Dagholdet
Kolonne F til J viser "Aftenholdet" Kolonne K til O viser "Natholdet" efter samme princip som ovenstående
A4:A??? skal være et automatisk forløbende nr. som angiver hvor mange der på det respektive hold. Det samme skal F4:F??? og K4:K???.
Jeg vil udprinte ARK3 hver uge og bruge det som et Informationsopslag til medarbejderne , om hvem og hvor mage som er på de respektive holdskift.
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1 On Error Resume Next BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A2:N" & BaseLrow)
With Worksheets("Ark3") .Range("A2").Select .Range(Selection, ActiveCell.SpecialCells(xlLastCell)).ClearContents
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Daghold" 'A LR = .Range("A65536").End(xlUp).Row + 1 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 1) .Cells(LR, 3) = Base(I, 2) .Cells(LR, 4) = Base(I, 3) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aftenhold" 'F LR = .Range("F65536").End(xlUp).Row + 1 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 1) .Cells(LR, 8) = Base(I, 2) .Cells(LR, 9) = Base(I, 3) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nathold" ' K LR = .Range("K65536").End(xlUp).Row + 1 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 1) .Cells(LR, 13) = Base(I, 2) .Cells(LR, 14) = Base(I, 3) .Cells(LR, 15) = Base(I, 14)
N = N + 1 Case Else
MsgBox Base(I, 13) & " ikke fundet" End Select Next End With End Sub
du skal køre makroen mens du står i dataarket med din medarbejderdatabase.
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1 BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A2:N" & BaseLrow)
With Worksheets("Ark3") R = .Range("A1").CurrentRegion.Rows.Count .Rows("2:" & R).Delete
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Daghold" 'A LR = .Range("A65536").End(xlUp).Row + 1 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aftenhold" 'F LR = .Range("F65536").End(xlUp).Row + 1 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nathold" ' K LR = .Range("K65536").End(xlUp).Row + 1 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1 Case Else MsgBox Base(I, 13) & " ikke fundet" End Select Next End With End Sub
Når du står i dit database ark, så prøv at højreklikke et tomt sted på menulinien, vælg Formularer.
Tryk på den der ligner en knap, tegn med musen på arket, hvor du vil have den, nu spørger den om hvilken makro den skal aktivere ved tryk, der vælger du denne her, nu kan du køre makroen ved at trykke der, i stedet for makroer kør.
1, Min Valideringsliste inderholder 12 elementer hvor af jeg kun vil bruge de omtalte : Daghold , aftenhold og Nathold (måske også ferie) 2. Data i Ark 1 starter i række 3 . Række 2 er overskriftsfelter Celle M2 har jeg kaldet "Hold" som overskrift.
Overskrifterne har ingen betydning, da de ikke læses.
Jeg har nu lavet så den starter i række 3 og fjernet Msgboxen, så du ikke skal svare.
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1 BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A3:N" & BaseLrow)
With Worksheets("Ark3") R = .Range("A1").CurrentRegion.Rows.Count .Rows("2:" & R).Delete
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Daghold" 'A LR = .Range("A65536").End(xlUp).Row + 1 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aftenhold" 'F LR = .Range("F65536").End(xlUp).Row + 1 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nathold" ' K LR = .Range("K65536").End(xlUp).Row + 1 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1 Case Else
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1 BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A5:N" & BaseLrow)
With Worksheets("Ark3") R = .Range("A1").CurrentRegion.Rows.Count .Rows("2:" & R).Delete
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Daghold" 'A LR = .Range("A65536").End(xlUp).Row + 1 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aftenhold" 'F LR = .Range("F65536").End(xlUp).Row + 1 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nathold" ' K LR = .Range("K65536").End(xlUp).Row + 1 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1 Case Else
End Select Next End With End Sub
det gør den selv, er rettet her til at slette fra række 5
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1 BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A3:N" & BaseLrow)
With Worksheets("Ark3") R = .Range("A1").CurrentRegion.Rows.Count .Rows("5:" & R).Delete
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Daghold" 'A LR = .Range("A65536").End(xlUp).Row + 1 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aftenhold" 'F LR = .Range("F65536").End(xlUp).Row + 1 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nathold" ' K LR = .Range("K65536").End(xlUp).Row + 1 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1 Case Else
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer, F As Integer D = 1 A = 1 N = 1 F = 1 BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A3:N" & BaseLrow)
With Worksheets("Ark3") R = .Range("A1").CurrentRegion.Rows.Count .Rows("5:" & R).Delete
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Daghold" 'A LR = .Range("A65536").End(xlUp).Row + 1 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aftenhold" 'F LR = .Range("F65536").End(xlUp).Row + 1 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nathold" ' K LR = .Range("K65536").End(xlUp).Row + 1 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1 Case "Ferie" ' P LR = .Range("P65536").End(xlUp).Row + 1 .Cells(LR, 16) = F .Cells(LR, 17) = Base(I, 2) .Cells(LR, 18) = Base(I, 3) .Cells(LR, 19) = Base(I, 4) .Cells(LR, 20) = Base(I, 14) F = F + 1
Case Else
End Select Next End With End Sub
Hvad laver jeg forkert her Har indsat "Ferie" i kolonne P
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer, F As Integer D = 1 A = 1 N = 1 F = 1 BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A3:N" & BaseLrow)
With Worksheets("Ark3") .Rows("5:50" ).Delete Shift:=xlUp
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Daghold" 'A LR = .Range("A65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aftenhold" 'F LR = .Range("F65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nathold" ' K LR = .Range("K65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1 Case "Ferie" ' P LR = .Range("P65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 16) = F .Cells(LR, 17) = Base(I, 2) .Cells(LR, 18) = Base(I, 3) .Cells(LR, 19) = Base(I, 4) .Cells(LR, 20) = Base(I, 14) F = F + 1
Hvis den skal lave det samme i Ark2 (Funktionær) Kan jeg så lave en fælles opdatering enten i Ark 1 eller Ark 3. Eller hvad med en automatik når jeg går om og ser på Ark 3, så opdatere den både fra Ark1(Timelønnet) og Ark 2(funktionær)????
BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A3:N" & BaseLrow)
With Worksheets("Ark3") .Rows("5:50").Delete Shift:=xlUp
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Dag" 'A LR = .Range("A65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aften" 'F LR = .Range("F65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nat" ' K LR = .Range("K65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1
Case Else
End Select Next .Cells.EntireColumn.AutoFit ' auto justerer celler End With End Sub
Nu virker det. Jeg oprettede et nyt ark og døbte det "Bemandingsplan".
Kan jeg beholde formateringen i det ark ("Bemandingsplanen") hvor modulet indsætter ny data. Det er skrifttyper og rammer jeg gerne vil beholde fra ganga til gang
Her henter jeg Kolonne 2,3,4,14 fra række 3 og nedefter. Datene lægges i Ark "Bemandingsplan" Datene kopieres i Ark "Bemandingsplan" De skal ind i række 13-50 (Række 12 må ikke slettes)
Ark2 = Hedder "Funktionær"
Her henter jeg Kolonne 2,3,4,11 og 12 fra række 3 og nedefter. Datene kopieres i Ark "Bemandingsplan" De skal ind i række 5-11 (Række 12 må ikke slettes)
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1
BaseLrow = Range("A65536").End(xlUp).Row Base = Range("A3:N" & BaseLrow)
With Worksheets("Bemandingsplan") .Rows("13:50").ClearContents
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Dag" 'A LR = .Range("A65536").End(xlUp).Row + 1 If LR < 13 Then LR = 13 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aften" 'F LR = .Range("F65536").End(xlUp).Row + 1 If LR < 13 Then LR = 13 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nat" ' K LR = .Range("K65536").End(xlUp).Row + 1 If LR < 13 Then LR = 13 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1
Case Else
End Select Next .Cells.EntireColumn.AutoFit ' auto justerer celler End With End Sub
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1
BaseLrow = Worksheets("Dipak").Range("A65536").End(xlUp).Row Base = Worksheets("Dipak").Range("A3:N" & BaseLrow)
With Worksheets("Bemandingsplan") .Rows("5:11").ClearContents
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Dag" 'A LR = .Range("A65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aften" 'F LR = .Range("F65536").End(xlUp).Row + 1 If LR < 13 Then LR = 13 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nat" ' K LR = .Range("K65536").End(xlUp).Row + 1 If LR < 13 Then LR = 13 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1
Case Else
End Select Next
End With
D = 1 A = 1 N = 1 BaseLrow = Worksheets("Funktionær").Range("A65536").End(xlUp).Row Base = Worksheets("Funktionær").Range("A3:N" & BaseLrow)
With Worksheets("Bemandingsplan") .Rows("13:50").ClearContents
For I = 1 To UBound(Base) Select Case Base(I, 13) ' kolonne 13,= den kolonne hvor Dag,Aften og Nat står Case "Dag" 'A LR = D + 4
.Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 11) .Cells(LR, 6) = Base(I, 12) D = D + 1 Case "Aften" 'F LR = A + 4 .Cells(LR, 7) = A .Cells(LR, 8) = Base(I, 2) .Cells(LR, 9) = Base(I, 3) .Cells(LR, 10) = Base(I, 4) .Cells(LR, 11) = Base(I, 11) .Cells(LR, 12) = Base(I, 12) A = A + 1 Case "Nat" ' K LR = N + 4 .Cells(LR, 13) = N .Cells(LR, 14) = Base(I, 2) .Cells(LR, 15) = Base(I, 3) .Cells(LR, 16) = Base(I, 4) .Cells(LR, 17) = Base(I, 11) .Cells(LR, 18) = Base(I, 12) N = N + 1
Case Else
End Select Next .Cells.EntireColumn.AutoFit ' auto justerer celler End With End Sub
Sub OpdaterMedarbejder() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1
BaseLrow = Worksheets("Dipak").Range("A65536").End(xlUp).Row Base = Worksheets("Dipak").Range("A3:N" & BaseLrow)
With Worksheets("Bemandingsplan") .Rows("5:11").ClearContents
For I = 1 To UBound(Base) Select Case Base(I, 13) Case "Dag" 'A LR = .Range("A65536").End(xlUp).Row + 1 If LR < 5 Then LR = 5 .Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 14) D = D + 1 Case "Aften" 'F LR = .Range("F65536").End(xlUp).Row + 1 If LR < 13 Then LR = 13 .Cells(LR, 6) = A .Cells(LR, 7) = Base(I, 2) .Cells(LR, 8) = Base(I, 3) .Cells(LR, 9) = Base(I, 4) .Cells(LR, 10) = Base(I, 14) A = A + 1 Case "Nat" ' K LR = .Range("K65536").End(xlUp).Row + 1 If LR < 13 Then LR = 13 .Cells(LR, 11) = N .Cells(LR, 12) = Base(I, 2) .Cells(LR, 13) = Base(I, 3) .Cells(LR, 14) = Base(I, 4) .Cells(LR, 15) = Base(I, 14) N = N + 1
Case Else
End Select Next .Cells.EntireColumn.AutoFit ' auto justerer celler End With End Sub
Sub OpdaterFunktionærer() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1 BaseLrow = Worksheets("Funktionær").Range("A65536").End(xlUp).Row Base = Worksheets("Funktionær").Range("A3:N" & BaseLrow)
With Worksheets("Bemandingsplan") .Rows("13:50").ClearContents
For I = 1 To UBound(Base) Select Case Base(I, 13) ' kolonne 13,= den kolonne hvor Dag,Aften og Nat står Case "Dag" 'A LR = D + 4
.Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 11) .Cells(LR, 6) = Base(I, 12) D = D + 1 Case "Aften" 'F LR = A + 4 .Cells(LR, 7) = A .Cells(LR, 8) = Base(I, 2) .Cells(LR, 9) = Base(I, 3) .Cells(LR, 10) = Base(I, 4) .Cells(LR, 11) = Base(I, 11) .Cells(LR, 12) = Base(I, 12) A = A + 1 Case "Nat" ' K LR = N + 4 .Cells(LR, 13) = N .Cells(LR, 14) = Base(I, 2) .Cells(LR, 15) = Base(I, 3) .Cells(LR, 16) = Base(I, 4) .Cells(LR, 17) = Base(I, 11) .Cells(LR, 18) = Base(I, 12) N = N + 1
Case Else
End Select Next .Cells.EntireColumn.AutoFit ' auto justerer celler End With End Sub
Jeg har lige fundet ud af jeg har lavet det lidt forkert.
I Funktionærarket har jeg i kolonne 11 funktionærens "Titel" og kolonne 12 hvilket skift de er på:
Det jeg ønskede var at det kun var nogle bestemte titler jeg vil have med i opdateringen nemlig "Maskinfører" på "Dag", "Aften" eller "Nat" Jeg får vist alle funktionær, på alle 3 skift og det var ikke meningen
Sub OpdaterFunktionærer() Dim Base As Variant, BaseLrow As Integer, LR As Integer, I As Integer Dim D As Integer, A As Integer, N As Integer D = 1 A = 1 N = 1 BaseLrow = Worksheets("Funktionær").Range("A65536").End(xlUp).Row Base = Worksheets("Funktionær").Range("A3:N" & BaseLrow)
With Worksheets("Bemandingsplan") .Rows("13:50").ClearContents
For I = 1 To UBound(Base) If Base(i,11) = "Maskinfører" then Select Case Base(I, 12) ' kolonne 12,= den kolonne hvor Dag,Aften og Nat står Case "Dag" 'A
LR = D + 4
.Cells(LR, 1) = D .Cells(LR, 2) = Base(I, 2) .Cells(LR, 3) = Base(I, 3) .Cells(LR, 4) = Base(I, 4) .Cells(LR, 5) = Base(I, 11) .Cells(LR, 6) = Base(I, 12) D = D + 1 Case "Aften" 'F LR = A + 4 .Cells(LR, 7) = A .Cells(LR, 8) = Base(I, 2) .Cells(LR, 9) = Base(I, 3) .Cells(LR, 10) = Base(I, 4) .Cells(LR, 11) = Base(I, 11) .Cells(LR, 12) = Base(I, 12) A = A + 1 Case "Nat" ' K LR = N + 4 .Cells(LR, 13) = N .Cells(LR, 14) = Base(I, 2) .Cells(LR, 15) = Base(I, 3) .Cells(LR, 16) = Base(I, 4) .Cells(LR, 17) = Base(I, 11) .Cells(LR, 18) = Base(I, 12) N = N + 1
Case Else
End Select end if Next .Cells.EntireColumn.AutoFit ' auto justerer celler End With End Sub
Jeg har vist fået mere end rigeligt for mine "Penge"!! Jeg opretter lige nogel flere spørgsmål, da jeg har en del mere som skal laves i VBA.
Hvem tror du, der ved noget om Brevfletning???
Venlig hilsen Jan
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.