Změna adresy buňky – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Změna adresy buňky – Visual Basic – Fórum – Programujte.comZměna adresy buňky – Visual Basic – Fórum – Programujte.com

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

Pavel
~ Anonymní uživatel
346 příspěvků
28. 11. 2021   #1
-
0
-

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 

Nahlásit jako SPAM
IP: 31.30.175.–
gna
~ Anonymní uživatel
1643 příspěvků
28. 11. 2021   #2
-
0
-

Ano, můžeš to hodit do cyklu a tu adresu "dynamicky vyrobit"

Range("g" & i)

Nebo rovnou použít něco, co bere čísla.

Cells(7, i)
Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1643 příspěvků
28. 11. 2021   #3
-
0
-

Parametry Cells (resp. Item) jsou asi naopak (řádek, sloupec)

Nahlásit jako SPAM
IP: 213.211.51.–
Pavel
~ Anonymní uživatel
346 příspěvků
29. 11. 2021   #4
-
0
-

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

Nahlásit jako SPAM
IP: 31.30.175.–
gna
~ Anonymní uživatel
1643 příspěvků
29. 11. 2021   #5
-
0
-

Existuje obecnější Simple MAPI, které je podporované Outlookem a snad i Thunderbirdem, u ostatních klientů netuším. Ale asi pro to není objekt přímo ve VBA a je potřeba "ručně" importovat DLLku. Třeba tady jsem něco našel, ale nevím, jestli ti to pomůže - http://www.vbaexpress.com/kb/getarticle.php?kb_id=311

Pokud nepotřebuješ ten mail mít v klientu a stačí ti ho prostě nějak odeslat, tak by mohlo být použitelné CDO - https://stackoverflow.com/a/44436577

Nahlásit jako SPAM
IP: 213.211.51.–
Pavel
~ Anonymní uživatel
346 příspěvků
30. 11. 2021   #6
-
0
-

vyzkouším, Děkuju !

Pavel

Nahlásit jako SPAM
IP: 31.30.175.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 32 hostů

Moderátoři diskuze

 

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