Anonymní profil Pavel – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Pavel – Programujte.comAnonymní profil Pavel – Programujte.com

 

Příspěvky odeslané z IP adresy 31.30.175.–

Pavel
Visual Basic › v makru : countifs vyhazuje…
7. 12. 2021   #389117

Ahoj

Dim h integer

Range("c1").FormulaLocal = "=COUNTIFS(R[1]C:R[5]C;""Poslat"")" 'funguje ok
Range("B1").FormulaLocal = "=COUNTIFS(c2:c15; ""Poslat"")"    'jiný zápis vzorce,jine bunky

tohle v3echno mi funguje, nacpe se to do bunky a tu přečtu,  ale potřebuju ten vysledek  COUNTIFS nacpat do proměnné, třeba "h" , bez toho aby se používal krok do bunky.

a ten    
Application.Evaluate("COUNTIFS(A5:A15;""Poslat"")")   ...ten příkaz apli..eval..  má vrátit výsledek toho vzorce?     ... prostě  vrací jen error2015.

Pavel
Visual Basic › v makru : countifs vyhazuje…
6. 12. 2021   #389109

Podařilo se mi ten vzorec modifikovat aby oblast bunek byla C2-proměnnáPosledníRádek (r)

Když ho nakopíruju do buňku, tak to v listu funguje

Range("c1").FormulaLocal =  "=COUNTIFS(R[1]C:R[" & r & "]C;""Poslat"")"

   ale Nedaří se mi z něho vytáhnout ten výsledek jak jsi uvedl :

X.Value   tedy    Cells(1, 1).Value = Application.Evaluate COUNTIFS(R[1]C:R[" & r & "]C;""Poslat"")

píše to syntax error.

Musím to snad někam definovat jako funkci VBA??

Pavel
Visual Basic › Modul VBA
6. 12. 2021   #389108

Zdravím všechny programátory a v prvé řadě před nimi hluboce smekám.

Trápím se z makrama v excelu.

Cosi jsem si už napsal, ale utíkají mi jisté ASI základní znalosti.

Pročetl jsem už dvě učebnice VBA ale hlava mi to nebere.

Jak jsem uvedl, napsal jsem si makra, nějakým záhadným způsobem se mi založili pod položku FORM, a tam po d události které je mají vyvolat. Tomu rozumím.

Ale , vyčetl jsem , že pro přehlednost, v tom stromě vlevo, si můžu zakládat /ono se to podle mě neznámým způsobem děla samo/ své moduly, které si mám pojmenovat tak abych ty svá makra rychle našel. Jo ,paráda.

Ale není mi jasné , když např stisknu nějaké tl.ComButon-  má zavolat to makro s modulu, tak to nejde. 

Když to makto je v  Private Sub MAKRO_Click(), tak to funguje. Ale chci si ukládat ty makra do těch modulu, pro přehlednost. Jak pak mám to makro co se má spustit po kliknutí /Private Sub MAKRO_Click()/ zavolat?

Nějakým application.run ? nebo jak ??

Jaký styl přehlednosti používáte vy?

Díky za info

Pavel
Visual Basic › v makru : countifs vyhazuje…
6. 12. 2021   #389107

..no nerozumím tomu.

Když zapíšu:

Range("c1").FormulaLocal = "=COUNTIFS(R[1]C:R[5]C;""Poslat"")"        'funguje ok

Range("B1").FormulaLocal = "COUNTIFS( A5:A15 ; ""Poslat"")"               'jiný zápis vzorce,
                                                                                     'ten vzorec se doplní ale nemá =, tzn výpočet Nefunguje

' ani když napíšu Range("B1").FormulaLocal = "=COUNTIFS( A5:A15 ; ""Poslat"")"   


     Debug.Print Range("c1").FormulaR1C1  'kontrola ok
     Debug.Print Range("c1").Formula      'kontrola ok
     Debug.Print Range("c1").Value        'kontrola ok
     Debug.Print Range("c1").Text         'kontrola ok
   

 p = Range("c1").Text                 'kontrola ok   výsledek do proměnné p
     Debug.Print p                         'kontrola


   Label2.Caption = p           'nejde :Variable not defined ???
     
End Sub

****************************************

  chci aby se na form1 v Label2.caption objevila ta hodnota a to mi nejde.

Je to dobře ?  Label2.caption = p     Píše mi to :  Variable not defined, to musím napsat nějakou podrobnější cestu k tomu Label2?

Ale původně jsem nechtěl vkládat nikam vzorec do buněk.

Chtěl jsem po stisknutí tlačítka "VYPOCET" na form1 ,aby se ta funkce provedla tzn. provedla vypočet, a  výsledek  napsala do Label2.caption

X.Value = Application.Evaluate("COUNTIFS(A5:A15;""Poslat"")")   tomu x.value nerozumím

Label2.caption = Application.Evaluate("COUNTIFS(A5:A15;""Poslat"")")   nefunguje

Pavel
Visual Basic › v makru : countifs vyhazuje…
5. 12. 2021   #389102
Pavel
Visual Basic › v makru : countifs vyhazuje…
5. 12. 2021   #389101

Zdravím.

Pokouším se napsat kod pro countifs.

Když použuju v sešite vzorec , funguje.

Když to chci do makra, aby mi do buňky B10 zapsal počet výskytů slova "Poslat". vyhodí to chybu.

Poradíte kde je zakopaný pes ?

Děkuji

P.

Připojen obrázek.

Pavel
Visual Basic › VBA v excelu-chybí v toolbox…
5. 12. 2021   #389098

Ještě pitomost. Když koukám na různé videonávody, když píšou příkazy, doplnuje se jim automaticky ten příkaz s nápovědou parametrů atd. Mě se nenabízí  nic.

Musí se to někde zapnout ?

P

Pavel
Visual Basic › VBA v excelu-chybí v toolbox…
5. 12. 2021   #389090

Super. Mám další problém.

Volám makrem založení nového emailu v outlooku, mezi html.body  si zadám text, ale není nijak zformátován,je to škaredé. Když si obecně v outlooku napíšu do nového emailu  pěkně zformátovaný, barevný, jiným písmem  text, jak to dostanu do té sekce v makru  mezi html.body ? Když to tam jen nakopíruju, není to s tím formátem a řve to nesmysly.

a 2.

když se mi makro otevře nový email v outlooku, otevře se definovaná upravená šablona, s podpisem uvítáním apod. Jak říct makru ať otevře nový email, ale ať ten text v šabloně smaže a dá tam jen ten co je natvrdo v makru mezi html.body ? popř nějaký parametr volání toho nového emailu, ale jinou šablonu.

P

Pavel
Visual Basic › VBA v excelu-chybí v toolbox…
4. 12. 2021   #389081

Jo, pomohlo. 

Makra se mi podařilo nějak napsat, ale zas zápasím s Formulářem.

Tlačítkem v na listu v ecelu si spustím formulář s úvodní nabídkou, Proklikám se dále na jiný form,kde je dotaz, tačítko AnoPokračovat, NeUkončit a Zpět. Jaký k'od mám napsat k událostiTlačítka "AnoPokračovat" aby mi spustilo připravené makro s názvem "TEST" ? 

Zkouším : Application.run = makro   ...furt nejde !

A jaký kod mám dát k tlačítku Zpět, aby se zobrazený formulář zavřel a zobrazil se ten předchozí?

P.

Pavel
Visual Basic › VBA v excelu-chybí v toolbox…
3. 12. 2021   #389075
Pavel
Visual Basic › VBA v excelu-chybí v toolbox…
3. 12. 2021   #389074

Nevím co se mi stalo ale po instalaci Office 2019 Pro , mi zmizeli z VBA toolboxu některá tlačítka, třeba nejde vložit CommandButon a jiné. Co mám špatně? 

Musím snad instalovat kompletní balík VBA 6? Dá se to někde stáhnout, nebo je to součást Office?

Pavel
Visual Basic › pavel
2. 12. 2021   #389067

Sem tam něco potřebuju do makra, tak mi to plně stačí ve VBA . Děkuju!

Pavel

Pavel
Visual Basic › Změna adresy buňky
30. 11. 2021   #389056

vyzkouším, Děkuju !

Pavel

Pavel
Visual Basic › zápis NEBO, a jiné další pod…
29. 11. 2021   #389053

Prosím, jaká jsou pravidla pro zápis , když chci do podmínky, že se to nerovná "A" , přidat ještě další podmínky, třeba ,že to nerovná "B".  Mam na mysli   A - Nebo - B.

If Odeslano(i, 1) <> "A" Then  ..atd   tohle je ok

If Odeslano(i, 1) <> "A"  NEBO "B"  Then   ....tady má byt to "nebo", kde , jak?

Popř kde najdu návody na správné zapisování, znaky " , & #, neznám které znaky co znamenají v kódu.

díky P.

Pavel
Visual Basic › pavel
29. 11. 2021   #389052

Prosím, jaká jsou pravidla pro zápis , když chci do podmínky, že se to nerovná "A" , přidat ještě další podmínky, třeba ,že to nerovná "B".  Mam na mysli   A - Nebo - B.

If Odeslano(i, 1) <> "A" Then  ..atd   tohle je ok

If Odeslano(i, 1) <> "A"  NEBO "B"  Then   ....tady má byt to "nebo", kde , jak?

Popř kde najdu návody na správné zapisování, znaky " , & #, neznám které znaky co znamenají v kódu.

díky P.

Pavel
Visual Basic › Změna adresy buňky
29. 11. 2021   #389050

Funguje, děkuju.

Ještě bych měl dotaz z jiného soudku:

Mám makro, které připraví email, nasype do nej soubory z dané složky  ale funguje jen když je v pc Outlook. Nejde to nějak navázat, že to nebude volat do outlooku, ale obecně nachystá tělo emailu a pošle to do win přes "sendmail" / ten pak spustí výchozí emailový program a odešle se.


    If objOutlook Is Nothing Then                                           'když Outlook otevřený nebyl
        Set objOutlook = CreateObject("Outlook.Application")                'tak ho otevři (skrytě)
        bIsCreated = True                                                   'a zároveň přitom nastav příznak, že ho máme potom zavřít
    End If

    For i = 1 To RowsA                                                      'projdi všechny datové řádky
        Application.StatusBar = "Spracování řádku " & i & " / " & RowsA     'průběh v stavové liště
        
          ' ORIG If Odeslano(i, 1) <> "A" Then                              'když jestě mail klientovy nebyl odeslán, nemá zapsano"A" tak to uděláme
                
            If Len(Data(i, 2)) > 0 And Len(Dir(Data(i, 2), vbDirectory)) > 0 And InStr(1, Data(i, 4), "@") > 0 Then 'zkontrolujeme vyplněnou složku, existenci složky, vyplnění mailu
                Data(i, 2) = Data(i, 2) & IIf(Right$(Data(i, 2), 1) <> "\", "\", "")                                'úprava koncového lomítka
                
                Set objMail = objOutlook.CreateItem(0)                          'vytvoř nový mail
    
                With objMail
                                                                                                  
                    strFileName = Dir(Data(i, 2), vbNormal)                     'vybereme první soubor ze složky

                    While Len(strFileName) > 0                                  'pokud nějaký soubor je, přiložíme ho
                        .Attachments.Add (Data(i, 2) & strFileName)             'přiložení souboru
                        strFileName = Dir                                       'přejít na další soubor
                    Wend

f .Attachments.Count > 0 Then                              'pokračuj jenom když byli nalezené a přiložené nějaké soubory
                        Rem .Display                                            'DDPLUS zobrazení okna mail  DOPLNIL JSEM SI SAM ABYCH VIDEL ŽE TO PRACUJE
                        Rem .HTMLBody = Data(i, 5) & .HTMLBody                      'doplnit do těla mailu text ze sloupce 5
                                                                                'ńebo co je tady
                        
                        .HTMLBody = "Dobrý den Zasílám test email .  " & .HTMLBody
                        
                        .To = Data(i, 4)                                        'vyplnit mailovou adresu příjemce
                        .CC = ""                                     'vyplnit mailovou adresu příjemce kopie
                        .BCC = ""                                    'vyplnit mailovou adresu skrytého příjemce
                        .Subject = Data(i, 6)                                   'vyplnit předmět mailu
                        Rem .Display                                                'zobrazení okna mailu
                        
                        On Error Resume Next
                        .Send                                                   'odeslání mailu
                        bIsSended = Err.Number = 0                              'otestování, zda přišlo pri odeslání mailu k chybě, a nastavit príznak odeslání
                        .Close olDiscard                                        'případné zrušení mailového okna bez uložení, po případné chybě při odesílání
                        On Error GoTo 0

atd

Pavel
Visual Basic › Změna adresy buňky
28. 11. 2021   #389043

Dobrý den.

Pořeboval bych radu.

Jestliže je hodnota bunky G2"Neposilat", nebo "Poslat" provede se zápis do stejného řádku , ale do sloupce C2

If Range("g2").Value = "Neposilat" Then Range("c2").Value = "Neposilat" Else Range("c2").Value = "Poslat"

Potřebuju to aplikovat na všechny ostatní řádky tabulky /od 2 do 100, ale nevím jak udělat cyklus, aby se ten Příkaz provedl, a podruhe se provedl na řádek 3, pak zas na 4, a další a další až do 100.

Zkrátka nevím, jestli se dá adresa buňky vyjádřit nějakou proměnnou, která by šla přes 

For i = 1 To   atd

Poradíte prosím ?

Děkuju Pavel 

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý