Pviggo Skrevet 30. juli 2015 Del Skrevet 30. juli 2015 (endret) Hei! Ser at en lignende tråd har vært, men klarer ikke å tilpasse macroene inn til å fungere hos meg. Jeg har lagd en arbeidsbok hvor det første arket er en oversikt over hva som er i "hospitalet" mens ark nr 2 er medisiner og ark nr 3 er utstyr. I kolonne J er medisiner mens kolonne K er utstyr. Jeg ønsker å sette inn en macro som gjør at ett kryss i "J" gjør at den infoen blir kopiert over til ark nr 2 og hele tiden er oppdatert. Jeg har lekt meg med en macro som jeg har lagt inn i modules, men den oppdaterer seg ikke automatisk. Må jeg evt lage en refresher knapp eller kan dette løses med noen komando i form av macro. Sub overfore () Application.screenUpdating = True Sheets ("Hospital").Select Cells.Select Selection.AutoFilter Selection.Autofilter field:=10, Criteria1:="=X" Selection.Specialcells(xlCellTypeVisible).Select Selection.Copy Sheets("Medicines").Select Cells.Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Hospital").Select Range("A1").Select ActiveSheet.AutofilterMode = False Application.ScreenUpdating = True Sheets ("Hospital").Select Cells.Select Selection.AutoFilter Selection.AutoFilter field:=11, Criteria1:="=X" Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Application.ScreenUpdating = True Sheets ("Equipment").Select Cells.Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Hospital").Select Range("A1").Select ActiveSheet.AutoFilterMode = False Application.ScreenUpdating = True End Sub Jeg er relativt fersk med å bruke macroer og har ikke fullstendig kontroll over alle kodene, men er svært lærevillig. Håper noen har ett eller noen gode forslag til løsning Endret 31. juli 2015 av Pviggo Lenke til kommentar
Harald Staff Skrevet 1. august 2015 Del Skrevet 1. august 2015 Hei Vi har denne diskusjonen noen ganger; hva bør utløse en handling? Jeg er sterk tilhenger av å klikke en knapp, eventuelt også bekrefte et ja-nei-spørsmål hvis det er irreversible handlinger. Allikevel, "automatisk" finner du ikke i vanlige moduler, men i hvert arks modul og i modulen til ThisWorkbook. Der er en del preprogrammerte tomme handlinger som utløses idet ett eller annet foregår. Du kommer til disse ved å velge i nedtrekksmenyene over modulen, hvilket objekt det gjelder i den venstre, og så hvilken hendelse i den høyre. Dette er en oversikt over tilbudet for det enkelte regneark: https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet_events(v=vs.120).aspx I ditt tilfelle tror jeg din løsning vil være noe a la Private Sub Worksheet_Change(ByVal Target as Range) If ' skriv betingelsen her, then Call Overfor End If End Sub HTH. Beste hilsen Harald 1 Lenke til kommentar
Pviggo Skrevet 1. august 2015 Forfatter Del Skrevet 1. august 2015 (endret) Hei Vi har denne diskusjonen noen ganger; hva bør utløse en handling? Jeg er sterk tilhenger av å klikke en knapp, eventuelt også bekrefte et ja-nei-spørsmål hvis det er irreversible handlinger. Allikevel, "automatisk" finner du ikke i vanlige moduler, men i hvert arks modul og i modulen til ThisWorkbook. Der er en del preprogrammerte tomme handlinger som utløses idet ett eller annet foregår. Du kommer til disse ved å velge i nedtrekksmenyene over modulen, hvilket objekt det gjelder i den venstre, og så hvilken hendelse i den høyre. Dette er en oversikt over tilbudet for det enkelte regneark: https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet_events(v=vs.120).aspx I ditt tilfelle tror jeg din løsning vil være noe a la Private Sub Worksheet_Change(ByVal Target as Range) If ' skriv betingelsen her, then Call Overfor End If End Sub HTH. Beste hilsen Harald Hei Harald og takk for svar! Jeg har forsøkt å legge inn automatisk, uten å lykkes. Jeg ser at den macroen jeg har satt inn for å overføre ikke er helt optimal heller, da den kopierer hele siden. Jeg har nå forsøkt å lage en ny arbeidsbok, og ser da heller etter muligheten for å legge inn en macro som overfører alt som er under rad 7, da det som er over rad 7 er overskrift og heading. Dette skal aktiveres med X i kolonne J som overføres til sheet 2 mens kolonne K overføres til sheet 3. Tenkte å ha en skjema kontrol knapp (Button form control) som oppdaterer arbeidsboken. Finnes det en enkel macro som tar hensyn til disse behovene? Se vedlagt bilde, alle (3) arkene er like. På forhånd takk for hjelpen Per Bratli Endret 1. august 2015 av Pviggo Lenke til kommentar
Harald Staff Skrevet 1. august 2015 Del Skrevet 1. august 2015 Hei igjen Per Nei, ingen enkel makro, dette er ikke enkelt. Men prøv å brekke ned oppgaven i små deler og løs en og en bit. Type hvordan få en knapp til å kjøre en makro, hvordan få en makro til å kjøre hvis jeg skriver X i en bestemt kolonne, hvordan merke hele raden jeg skriver X i, hvordan finne ut hva som er nederste brukte rad, hvordan slette innholdet i en rad, hvordan finne første ledige rad i et annet ark, ... Beste hilsen Harald Lenke til kommentar
Pviggo Skrevet 3. august 2015 Forfatter Del Skrevet 3. august 2015 Hei igjen Per Nei, ingen enkel makro, dette er ikke enkelt. Men prøv å brekke ned oppgaven i små deler og løs en og en bit. Type hvordan få en knapp til å kjøre en makro, hvordan få en makro til å kjøre hvis jeg skriver X i en bestemt kolonne, hvordan merke hele raden jeg skriver X i, hvordan finne ut hva som er nederste brukte rad, hvordan slette innholdet i en rad, hvordan finne første ledige rad i et annet ark, ... Beste hilsen Harald Takk igjen Harald! Da har jeg endelig løst oppgaven, ved å brekke ned oppgaven og tenke enkelt. Fant en nettside med nyttig kurs materiale, http://www.homeandlearn.org/index.htmlsom ga meg verktøy til å forstå hvordan macro'er er bygd opp. Macroen ble til slutt: Sub overfore() Sheets("Medicines").Select Range("A7:L500").Select Selection.ClearContents Sheets("Hospital").Select Range("A7:L500").Select Selection.AutoFilter Selection.AutoFilter field:=9, Criteria1:="=X" Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("Medicines").Select Range("A7").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Hospital").Select Range("A7").Select ActiveSheet.AutoFilterMode = False Application.ScreenUpdating = True Sheets("Equipment").Select Range("A7:L500").Select Selection.ClearContents Sheets("Hospital").Select Range("A7:L500").Select Selection.AutoFilter Selection.AutoFilter field:=10, Criteria1:="=X" Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("Equipment").Select Range("A7").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Hospital").Select Range("A7").Select ActiveSheet.AutoFilterMode = False Application.ScreenUpdating = True End Sub 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå