< návrat zpět

MS Excel


Téma: Úprava dvou maker rss

Zaslal/a 26.7.2016 18:33

Ahoj,

mám dvě makra, která bych potřeboval následovně upravit:

- když je název souboru "CN" a nebo "DL" then... zkoušel jsem or nebo and a ani jedno nejde...

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.ActiveSheet.Name <> "cn" Then
ActiveSheet.Range("H8").Value = Environ("username")
ActiveSheet.Range("J8").Value = Date
End If
End Sub

Zde bych potřeboval to stejné, ale aby v ThisWorkbook sheet mohlo být "CN" a nebo "DL" případně další... then...

Sub Workbook_Open()
If Environ("username") = "Milan" Then
ThisWorkbook.Sheets("cn").Range("G3").Value = "aaa"
ThisWorkbook.Sheets("cn").Range("G4").Value = "bbb"
ThisWorkbook.Sheets("cn").Range("G5").Value = "ccc"
End sub

Pro někoho asi hrozně jednoduché, ale já se s tím peru. :-)
Děkuji za ochotu.

Zaslat odpověď >

#032121
avatar
V prve ukazce je podminka tykajici se nazvu sesitu a ne souboru. Zni nasledovne:
pokud se prave aktivni list nejmenuje "cn" tak..

Ve druhem pokusu proste odkazujete na konkretni bunku v sesite "cn" a menite jeji hodnotu...

Tedy nevim, co je vlastne chcete udelat.

sydcitovat
icon #032122
avatar
Tiež asi úplne nerozumiem zadaniu, každopádne, test na názov aktívneho listu by mohol byť nejako takto:Sub test()
If ThisWorkbook.ActiveSheet.Name = "CN" Or ThisWorkbook.ActiveSheet.Name = "DL" Then
MsgBox "Nazov aktivneho listu je CN alebo DL"
'msgbox zakomentuj a tu zapis, co sa ma diat v pripade platnej podmienky
Else: MsgBox "Iny aktivny list"
'msgbox zakomentuj a tu zapis, co sa ma diat v pripade neplatnej podmienky
End If
End Sub

Sub test2()
If ThisWorkbook.ActiveSheet.Name <> "CN" And ThisWorkbook.ActiveSheet.Name <> "DL" Then
MsgBox "Iny aktivny list"
'msgbox zakomentuj a tu zapis, co sa ma diat v pripade platnej podmienky
Else: MsgBox "Nazov aktivneho listu je CN alebo DL"
'msgbox zakomentuj a tu zapis co sa ma diat v pripade neplatnej podmienky
End If
End Sub
Prečo to prípadne nepošleš mailom a nenapíšeš zrozumiteľne, čo potrebuješ, keď sa s tým súborom už nejakú dobu hráme?
P.S.: k definícii pojmov asi toto:
pojmy zošit, workbook a súbor sú čiastočné synonymá
sheet nie zošit, ale list (hárok), niekto uvádza i tab, ten pojem ale nemám rád
CN a DL sú názvy listov (sheetov), to viem, páč ten súbor poznám, ale rozumiem, že syd sa v zadaní zbytočne stráca, páč sa vyjadruješ nepresne.citovat
#032124
avatar
Hm. Koukam, ze jsem se v tom taky zamotal. Nejsem zvykly pracovat v office v cestine... 10citovat
#032126
avatar
První problém mám vyřešen, nyní druhý...

Potřebuji, aby makro zapsalo do sheetu ("cn") nebo ("dl") (podle toho, jaký list bude v souboru k dispozici, nikdy nebudou oba zaráz) hodnotu "aaa" (bbb, ccc)

tzn.
ThisWorkbook.Sheets("cn") nebo ("dl").Range("G3").Value = "aaa"

Sub Workbook_Open()
If Environ("username") = "Milan" Then
ThisWorkbook.Sheets("cn").Range("G3").Value = "aaa"
ThisWorkbook.Sheets("cn").Range("G4").Value = "bbb"
ThisWorkbook.Sheets("cn").Range("G5").Value = "ccc"
End sub

Omlouvám se za mé lajcké vyjadřování a děkuji.citovat
#032127
avatar
K lajdáckemu zadaniu(bez priloženého súboru) nemá význam sa vyjadrovať.
možno takto

For i = 1 To Sheets.Count
If Sheets(i).Name = "CN" or Sheets(i).Name = "DL" Then Sheets(i).Cells(1, 1) = "aaa"
Next i

alebo
For Each List In Sheets
If List.Name = "CN" or List.Name = "DL" Then List.Cells(1, 1) = "aaa"
Next

prípadne
Sheets(Array("CN", "DL")).Select
Range("c3").Select
Selection = "aaa"
citovat
#032128
avatar
https://uloz.to/!SX2eWouP6/555-zip

Zasílám přílohu.
Vložení hodnoty do buňky musí být podmíněno jménem účtu na PC. viz příloha.

Kdyby ještě něco bylo třeba, rád odpovím.
Děkuji.citovat
#032129
avatar
Problém je i po znovu otevření souboru chyba:

Run-time error "9".
Subscript out of range.citovat
#032153
avatar
Zkusím to lépe popsat...

Aktuálně mám toto makro:
Které při otevření souboru, pokud se název účtu na pc jmenuje "Milan" a název sešitu je "cn" zapíše hodnoty do níže definovaných buňek.

Sub Workbook_Open()
If Environ("username") = "Milan" Then
ThisWorkbook.Sheets("cn").Range("G3").Value = "aaa"
ThisWorkbook.Sheets("cn").Range("G4").Value = "bbb"
ThisWorkbook.Sheets("cn").Range("G5").Value = "ccc"
End sub

Aktuálně do souboru přibyl se list, který se jmenuje "DL" (list CN ani DL se nevyskytují v souboru naráz) a já potřebuji do listu "DL" zapsat ty stejné informace na stejné místo jako na listu "cn".

Do makra tedy potřebuji přidat list navíc, aby podmínka byla definována takto: při otevření zkontroluj, zda jméno účtu je Milan, pokud ano zapiš do listu "cn" a nebo "dl" hodnoty definované výše do výše uvedených buněk.

Jde mi tedy pouze o to, do makra přidat podmínku pro list "DL".

Snad jsem to už popsal srozumitelně.
Děkuji.citovat
#032155
avatar
Ahoj,

mozna toto:


Sub Workbook_Open()
Dim sh As Worksheet
If Environ("username") = "Milan" Then
For Each sh In ThisWorkbook.Worksheets
If sh.Name = "cn" Or sh.Name = "dl" Then
With ThisWorkbook.Sheets(sh.Name)
.Range("G3:G5") = Application.Transpose(Array("aaa", "bbb", "ccc"))
End With
End If
Next sh
End if
End sub


syd 10citovat
#032207
avatar
Funguje skvěle, děkuji moc! ;-)citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje