Keresés

Részletes keresés

Törölt nick Creative Commons License 2010.05.28 0 0 11883
A Paste nem csak Selection-nel megy, hanem Range-el is. Az pedig nagyon konkrétan és precízen meghatározható. Az alábbi példakód az kódot tartalmazó dokumentum (ThisDocument) 4-6. karakterét másolja át a D:\dok1.doc végére.

Dim r As Range, EndPosition As Long, D As Document

Set D = Documents.Open("D:\dok1.doc")
Set r = ThisDocument.Range(3, 6)
r.Copy
EndPosition = D.Characters.Count - 1
D.Range(EndPosition, EndPosition).Paste

De nem erőltetem tovább. Lehet, hogy valóban egyszerűbb a tálcáról eltüntetni a kísértést.
Előzmény: Kenus (11879)
Kenus Creative Commons License 2010.05.28 0 0 11882

Ja, hogy most a munka végén miért tolakszik a képernyőre a körlevél varázsló, az rejtély, de ez legyen a legnagyobb baj :-).

 

Előzmény: Kenus (11881)
Kenus Creative Commons License 2010.05.28 0 0 11881

Wow! Közben meglett!

A Application.ShowWindowsInTaskbar = False, majd a munka végén kiadott Application.ShowWindowsInTaskbar = True segített. A tiltás az összes pillanatnyilag látható Word taskot elrejti, az engedély visszahozza. Munka közben a körlevélen végrehajtott módosítások látszanak, de ez nagyon nem baj. Az engedély kiadásának pillanatában viszont a körlevet már elmentettem, bezártam.

Mindenki ötletét, segítségét köszönöm!

Előzmény: Kenus (11880)
Kenus Creative Commons License 2010.05.28 0 0 11880
Igen, ez tetszene. Tulajdonképpen az kellene, hogy minden a feladat szempontjából érdektelen dokumentumot elrejtsek a tálcáról, aztán, ha befejeztem, amit akartam, visszaállíthassam. Tudja valaki, hogyan tehetném ezt meg?
Előzmény: Delila_1 (11877)
Kenus Creative Commons License 2010.05.28 0 0 11879

Igen, ez lenne az igazán jó, de (bár nagyon nem akartam az ittenieket Word specifikus elemekkel fárasztani):

1. A Selection ojektum és így metódusai (pl. Selection.Paste) is globálisak, azaz nem tudom megmondani, hová szúrjon be (legalábbis nem ismerem a módját, hogy mindenképpen - mondjuk - a Document(ezKell) dokumentummal tegye).

2. Nem én nyitom az új dokumentumot, hanem a Word, amikor körlevél készítését kérem tőle. Hiába sikerült kinyernem, melyik ez a dokumentum, ha minden utasítás elé teszek egy Document(ezKell). Activate sort, akkor is tudok olyan állapotot generálni, amikor a Selection.Paste nem oda szúr be, ahova én akarok.

Előzmény: Törölt nick (11878)
Törölt nick Creative Commons License 2010.05.28 0 0 11878
El kellene felejteni az olyan hivatkozásokat, mint az activeDocument, ActiveSheet, meg hasonlók. Tessék rendesen definiálni Document típusú változókat, hozzárendelni a megfelelő dokumentumokat, és azokra hivatkozni a kódban. Akkor aztán kattintgathat a user akárhová, nem fogja megzavarni a futást.

Pl.
Dim d As Document
Set d = Documents.Open("Dok1.doc")
d.SaveAs "Dok2.doc"


Bizonyos esetekben az ActiveDocument helyett a ThisDocument használható. Ez arra a doc-ra hivatkozik, amelyikben a makró van.
Előzmény: Kenus (11876)
Delila_1 Creative Commons License 2010.05.28 0 0 11877
Valahol be lehet állítani, hogy a tálcán ne jelenjenek meg a megnyitott doc-ok, akkor nem tud átváltani.
Előzmény: Kenus (11876)
Kenus Creative Commons License 2010.05.28 0 0 11876

Köszi, kipróbáltam, de nem lett sikeres.

Igaz, hogy menet közben nem frissült a képernyő, de az activeDocument megváltozott. Így a makró lefutása után "örvendezhettem" a nem várt eredménynek. :-)

Valami más kellene, vagy emellé még valami...

Előzmény: Delila_1 (11875)
Delila_1 Creative Commons License 2010.05.28 0 0 11875
A futás idejére le kell állítani a képernyőfrissítést. Ez az Excelnél a makró elején az
Application.ScreenUpdating = False sorral tehető meg, amit makró végén True-val kell visszaállítani.
Előzmény: Kenus (11874)
Kenus Creative Commons License 2010.05.28 0 0 11874

Sziasztok!

 

A probléma Wordben merült fel, de gondolom, Excellel is előfordulhat.

Van-e mód arra, hogy ha egy hosszabb makró futása alatt a júzer összevissza kattintgat a tálcán, az activeDocument/activeSheet/activeAkármi ne változzék?

 

Üdv és köszi!

Törölt nick Creative Commons License 2010.05.26 0 0 11873
Nagyon remélem, hogy már valóban nem bosszant többé :-)
Előzmény: Törölt nick (11871)
Delila_1 Creative Commons License 2010.05.26 0 0 11872
:D
Előzmény: Törölt nick (11871)
Törölt nick Creative Commons License 2010.05.26 0 0 11871
Csak akkor küldd át, ha a most bevált sebészeti eljárás sem vezet eredményre. Úgy vélem, ez alapvetően belgyógyászati kérdés. Az ilyenek gyógyításához én kevés vagyok.

Ha tudnád reprodukálni, akkor beküldhetnéd a Microsoftnak, hogy mondjanak rá valamit. De szerintem ez is kb. annyira kiszámítható, hogy a Mars és a Jupiter együttállásakor, amikor a Nap a Szűz jegyében kel, ha hétszer körbejárod a számítógéped az óramutató járásával ellenkező irányban, miközben a paksi erőműben éppen műszakváltás van, akkor jelenik meg a probléma. Egyszóval lehet, hogy sosem találkozol vele többé.
Előzmény: Törölt nick (11868)
Delila_1 Creative Commons License 2010.05.25 0 0 11870
Szívesen.
Előzmény: animazsi (11869)
animazsi Creative Commons License 2010.05.25 0 0 11869
nagyon szépen köszönöm!
Előzmény: Delila_1 (11862)
Törölt nick Creative Commons License 2010.05.25 0 0 11868
Köszönöm szépen! Úgy tűnik, az export/import jót tett, mert azóta nem jön elő a hibajelenség, sőt előcsalogatni sem bírom sehogy... Na, ez a paranormális... Ha megint felbukkan, jelentkezem és átküldöm a munkafüzetet (sajnos, nem tudom feltenni sehova)
Előzmény: Törölt nick (11866)
Törölt nick Creative Commons License 2010.05.25 0 0 11867
Ha ez nem megy, esetleg fel tudod töltetni valahová a munkafüzetet? (Nyilván üresen.)
Előzmény: Törölt nick (11865)
Törölt nick Creative Commons License 2010.05.25 0 0 11866
Tippelek. Próbáld meg exportálni a Userformot fájlba (Project Explorerben jobb klikk ->Export), aztán törölni az eredetit, és vissza importálni a mentésből.
Előzmény: Törölt nick (11865)
Törölt nick Creative Commons License 2010.05.25 0 0 11865

Sziasztok!

 

Adott egy Userform, amit ha megjelenítek (Userform1.Show) azonnal megjelenik a ToolBox is. Van rajta 6 Label és egy CommandButton1, tehát semmi különös. Ilyennel még nem találkoztam, mindjárt megőrülök, mert nem tudom behatárolni, hogy miért csinálja ezt! Már levettem a formról mindent és akkor is megjeleníti a ToolBox-ot. Tudna valaki segíteni?

 

Előre is köszönöm!

Delila_1 Creative Commons License 2010.05.25 0 0 11864
[Off Topic] Most úgy voltam, mint Te régebben: itt voltam, de csak nézelődtem. :)[Off Topic]
Előzmény: Törölt nick (11863)
Törölt nick Creative Commons License 2010.05.25 0 0 11863
Vége a szabadságnak?
;-)
Előzmény: Delila_1 (11862)
Delila_1 Creative Commons License 2010.05.25 0 0 11862
Kijelölöd a sorokat. Szerekesztés/Ugrás (vagy ehelyett Ctrl+g), Irányított, Üres cellák.
Ezzel minden sorban kijelölted az üres cellákat.
Ctrl és mínusz gombot nyomsz, megjelenik a Törlés gyorsmenü, amin a Cellák eltolása balra opciót választod.
Előzmény: animazsi (11861)
animazsi Creative Commons License 2010.05.24 0 0 11861
köszi! ennyire azért nem vagyok béna...
a probléma abban áll, hogy mondjuk a K oszlopban csak 5 sorban van szöveg, az L-ben szintén, az M-ben kettőben és így tovább, és van vagy 2000 sor, így egyesével eléggé sokáig tartana...
hogyan lehet kiszedni egy oszlopból vagy sorból a köztes üres cellákat, ha azok nem tesznek ki egész oszlopot vagy sort?
Előzmény: Sánta Kutya (SK) (11860)
Sánta Kutya (SK) Creative Commons License 2010.05.24 0 0 11860
Kijelölöd a C:J oszlopokat, jobb gomb, törlés.
Előzmény: animazsi (11859)
animazsi Creative Commons License 2010.05.24 0 0 11859
sziasztok!
barátnőm még annyira sem jártas excel-ben, mint én, így sikerült neki a B oszlop után a K-ba, vagy épp az M-be adatokat írni, merthogy "odáig tartott" a B oszlop szövege. :-) engem viszont rettenetesen zavar, hogy nem tudom oszloponként kezelni az adatokat, mert hol itt, hol ott vannak közben üres cellák vagy egész üres oszlopok. hogyan tudnám a legegyszerűbben kivenni a köztes üres cellákat az egyes sorokból? (makrókat még nem nagyon használtam, ha az lenne a megoldás, úgyhogy ebben az esetben nagyon részletes leírást kérnék :-)) köszi
Törölt nick Creative Commons License 2010.05.24 0 0 11858
Nagyon szívesen! :-))
Előzmény: Redlac (11857)
Redlac Creative Commons License 2010.05.24 0 0 11857
Ember! Tőled ennyi telik????

MINDEN működik rajta, amit szerettem volna!

Köszönöm szépen...és ezt fokozom, annyira, amennyire szeretnéd :-)

De puszit nem adok..ha csak nem egy szőke, hosszú combú nőnemű lény vagy ;-)

Leslee hálája üldözni fog!
Előzmény: Törölt nick (11855)
Törölt nick Creative Commons License 2010.05.24 0 0 11856
A Workbook objektumnak van egy lyyan eseménye, hogy NewSheet. Itt kell keresgélni.

Private Sub Workbook_NewSheet(ByVal Sh As Object)

End Sub
Előzmény: Gavriel (11846)
Törölt nick Creative Commons License 2010.05.24 0 0 11855

Szerintem, fussunk neki még egyszer ;-) Biztosan van egyszerűbb, frappánsabb megoldás, de tőlem most ennyi telik. A módosított kód már azt is kezeli, ha beírod a megfelelő időértéket (pl. 12:34).

 

---------------------------------

 

Private Sub Hibaüzenet(Hibahelye As Range, Hibaszám As Byte)
 
  Hibahelye.Interior.ColorIndex = 3
  Hibahelye.Font.ColorIndex = 2
  Hibahelye.Select
 
  Select Case Hibaszám
    Case 1
      MsgBox "Figyelem! Hibás érték a(z) " & Hibahelye.Address(False, False) & "-es cellában!", vbCritical, "Adatvédelem"
    Case 2
      MsgBox "Figyelem! Hibás időérték a(z) " & Hibahelye.Address(False, False) & "-es cellában!", vbCritical, "Adatvédelem"
  End Select
 
End Sub

 

 

Private Sub HibajelzésKI(HibásCella As Range)


  HibásCella.Interior.ColorIndex = xlNone
  HibásCella.Font.ColorIndex = 1
   
End Sub

 

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Érték As Long
On Error Resume Next

 

  If Target.Count = 1 Then
   
    If Target <> "" And Not Intersect(Target, Range("A1:A10")) Is Nothing Then
                       
      Érték = Target
                       
      If Len(Target) = 4 And Err.Number = 0 Then
                               
        If Mid(Target, 1, 2) >= "00" And Mid(Target, 1, 2) <= "23" And _
           Mid(Target, 3, 2) >= "00" And Mid(Target, 3, 2) <= "59" Then
        
           Application.EnableEvents = False
           Target.Value = Mid(Target, 1, 2) & ":" & Mid(Target, 3, 2)
           HibajelzésKI Target
           Application.EnableEvents = True
        
        Else: Hibaüzenet Target, 2
        End If
       
      Else
       
        HibajelzésKI Target
       
        If Len(Target) = 5 And _
           Mid(Target, 1, 2) >= "00" And Mid(Target, 1, 2) <= "23" And _
           Mid(Target, 4, 2) >= "00" And Mid(Target, 4, 2) <= "59" Then
            
             If Mid(Target, 3, 1) <> ":" Then
                Hibaüzenet Target, 1
             Else: HibajelzésKI Target
             End If
            
        Else
          Select Case Target
            Case "egy"
              MsgBox "itt lehet lekezelni az 'egy' szóhoz tartozó feladatot"
            Case "kettő"
              MsgBox "itt lehet lekezelni a 'kettő' szóhoz tartozó feladatot"
            Case "három"
              MsgBox "itt lehet lekezelni a 'három' szóhoz tartozó feladatot"
            Case Else
              Hibaüzenet Target, 1
          End Select
        End If
       
        Err.Clear
       
      End If
   
    End If
  End If
 
End Sub

Előzmény: Redlac (11854)
Redlac Creative Commons License 2010.05.24 0 0 11854
Köszönöm a fáradozásodat Boraka!

A mostani kódod azt hiszem már tényleg tökéletes:-)

De ebben a kódban is és az előzőben is, ha DEL-t nyomok, akkor hibaüzenetet ad.
1. Ezt nem szeretném:-)
2. Ennek a kódnak a végére próbáltam az előző többirányú elágazást (case)belekombinálni, mivel (közben rájöttem, hogy valóban) szüksége lenne a meghatározott szöveg szűrésére. Nem ment :-(

Szerinted?

Előzmény: Törölt nick (11853)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!