Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Makro koju kopira sheet i javi ako već postoji

[es] :: Office :: Excel :: Makro koju kopira sheet i javi ako već postoji

[ Pregleda: 1628 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zorro43

Član broj: 326301
Poruke: 5
*.static.amis.net.



+1 Profil

icon Makro koju kopira sheet i javi ako već postoji21.11.2014. u 21:41 - pre 114 meseci
Bok!
Imam jedan problem u excelu.
U radnoj knjizi imam 1 sheet sa imenom JELOVNIK. Hteo bih da makro napravi 2 kopije tog sheeta. Jednoj kopiji treba dati ime JELOVNIK_OH a drugoj JELOVNIK_TIARA. Ako sheetovi sa ovim imenima već postoje neka putem msgboxa javi da postoje. U tom slučaju ne trebam kopije ali ako jih nema i makro jih napravi neka opet putem msgboxa javi da je napravio kopiju sa imenom JELOVNIK_OH i kopiju sa imenom JELOVNIK_TIARA. Dalje, ako postoji samo jedna kopija, neka napravi onu koje nema i opet javi, da je napravio kopiju sheeta sa imenom (kopija koje nema) a drugu nije napravio jer več postoji.

Nadam se da ste me razumeli.
Pozdrav iz SLO.
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
37.19.108.*

Sajt: www.gowi.rs


+109 Profil

icon Re: Makro koju kopira sheet i javi ako već postoji22.11.2014. u 12:00 - pre 114 meseci
Prema tvojim zahtevma čini me se zgodno da napraviš funkciju koja kopira list sa određenim imenom u zadato ime (da se ne ograničimo na ovaj poseban slučaj možda se iskoristi za još nešto) i kao rezultat vraća string sa rezultatom akcije: "Kreiran list" ili "Već postoji"

Code:
Private Function CopySheet(strShSource As String, strShDest As String) As String
' Ako ne postoji shDest kreira ga na osnovu shSource
' Kao izlaz  formira se poruka  o rezultatu akcije
' P.Jovanovic za elitesecurity.org
'
 If WorksheetExists(strShDest) Then
 ' Ako vec  postoji
    CopySheet = "Radni list " & strShDest & " već postoji"
 Else ' Ako ne kopira
    ThisWorkbook.Sheets(strShSource).Copy _
         after:=ActiveWorkbook.Sheets(strShSource)
    ActiveSheet.Name = strShDest
    CopySheet = "Radni list " & strShDest & " je kreiran kao kopija " & strShSource
 End If
End Function


Sad ovu funkciju u tvom slučaju pozivaš dva puta sa odgovarajućim parametrima i "sabiraš" poruke. Na kraju sa MsgBox prikažeš celu poruku. U navedenoj funkciji koristi se funkcija WorksheetExist, koja jednostavno daje True/False za zadato ime, a na osnovu toga da je rezultat Sheets(WorksheetName).Name Error ako ne postoji list sa tim imenom.


Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Office :: Excel :: Makro koju kopira sheet i javi ako već postoji

[ Pregleda: 1628 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.