• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

dubbelzinigenaam

Status
Niet open voor verdere reacties.

baukjen

Gebruiker
Lid geworden
14 sep 2006
Berichten
275
Ja dat is dus lastig. Verschillende tabbladen (bestanden) die wel de dezelfde functie moeten hebben en een melding geeft dubbelzinigenaam (zie bijlage).

De help functie geeft voor mij geen oplossing. Wie helpt mij in de juiste richting?
bijlage help

Alvast bedankt.

Hartelijke groet,
Baukjen
 

Bijlagen

  • help.docx
    15,5 KB · Weergaven: 24
  • dubbelzinnige naam.png
    dubbelzinnige naam.png
    24,2 KB · Weergaven: 79
  • Mail.xlsm
    28,3 KB · Weergaven: 26
die melding is niet vreemd, je gebruikt twee maal dezelfde SubNaam. Deze kan je een andere naam geven, dan ben je van het probleem af.

Maar waarom gebruik je er niet slechts 1 die je voor beide bladen kan gebruiken, de code in tenslotte nagenoeg gelijk.

Code:
Sub Mail_ActiveSheet()
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
    On Error Resume Next
    With OutMail
        For Each cell In [COLOR="#FF0000"]Range("B1:B150")[/COLOR]
            If cell.Value Like "?*@?*.?*" And LCase(cell.Offset(0, 1).Value) = "ja" Then
                If strto = "" Then strto = stro & ";"
                strto = strto & cell.Value & ";"
            End If
        Next cell
        .To = ""
        .CC = ""
        .BCC = strto
        .Subject = Sheets("brief").[B1]
        For Each cell In ThisWorkbook.Sheets("brief").Range("B2:B50")
            strbody = strbody & cell.Value & vbNewLine
        Next
        .body = strbody
        .Display    'send
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
 
Laatst bewerkt:
Heb de SubNaam aangepast maar dan wekt het niet zoals module 1 werkt.
Die maakt 1 bericht met alle adressen die op ja staan in kolom B als BCC.

......gebruik je er niet slechts 1.......
Er komen nog veel meer bladen bij en ieder blad zal een ander bericht ontvangen.
 
Module 1 en module 2 zijn volgens mij op de naam van het blad na gelijk. Als je dat dus bladonafhankelijk maakt, zoals in mijn eerdere bericht, kan je het voor meerdere bladen gebruiken.

Het bericht dat module 1 aanmaakt is toch gelijk aan dat van module 2, of zie ik iets over het hoofd?
 
De module is inderdaad bijna gelijk.
Het bereik van het ene blad t.a.v. het ander kan verschillend worden.
Maar het vreemde is bij gebruik van het blad “kies” komen keurig de mail adressen in de BCC te staan en bij het andere blad “test” gebeurd dat niet.
Uiteraard alleen als kolom C op ja staat. Dat vind ik vreemd.
 
Maak 1 routine die het mailen verzorgd en regel de variabelen in een sub specifiek voor het betreffende werkblad:
Code:
Sub MailSheet1()
    For Each cl In ThisWorkbook.Sheets("Kies").Range("B1:B50")
        If cl.Value Like "?*@?*.?*" And LCase(cl.Offset(0, 1).Value) = "ja" Then
            If strto = "" Then strto = stro & ";"
            strto = strto & cell.Value & ";"
        End If
    Next cl
    strsubject = Sheets("brief").[B1]
    strcc = ""
    strBcc = ""
    
    For Each cell In ThisWorkbook.Sheets("brief").Range("B2:B50")
        strbody = strbody & cell.Value & vbNewLine
    Next
    
    Call Mail_ActiveSheet(strto, strcc, strBcc, strsubject, strbody)
End Sub

Sub MailSheet2()
    For Each cl In ThisWorkbook.Sheets("test1").Range("B1:B50")
        If cl.Value Like "?*@?*.?*" And LCase(cl.Offset(0, 1).Value) = "ja" Then
            If strto = "" Then strto = stro & ";"
            strto = strto & cell.Value & ";"
        End If
    Next cell

    strsubject = Sheets("brief").[B1]
    strcc = ""
    strBcc = ""
    
    For Each cell In ThisWorkbook.Sheets("brief").Range("B2:B50")
        strbody = strbody & cell.Value & vbNewLine
    Next
    
    Call Mail_ActiveSheet(strto, strcc, strBcc, strsubject, strbody)
End Sub

Sub Mail_ActiveSheet(strto As String, strcc As String, strBcc As String, strsubject As String, strbody As String)
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With OutMail
        .To = strto
        .CC = strcc
        .BCC = strBcc
        .Subject = strsubject
        .body = strbody
        .Display   [COLOR="#008000"] 'send[/COLOR]
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
 
@ edmoor
dank ik ga hiermee eens experimenteren.
hartelijke groet
Baukjen
 
Ik zie geen verschil tussen de verschillende tabjes.

Met iets meer structuur
Code:
Sub VenA()
  For Each cl In Columns(2).SpecialCells(2)
    If cl.Value Like "?*@?*.?*" And LCase(cl.Offset(0, 1).Value) = "ja" Then c00 = c00 & ";" & cl
  Next cl
  If Len(c00) > 0 Then
    ar = Sheets("Brief").Range("B1:B" & Sheets("Brief").Cells(Rows.Count, 2).End(xlUp).Row)
    For j = 2 To UBound(ar)
      c01 = c01 & ar(j, 1) & vbNewLine
    Next j
    With CreateObject("Outlook.Application").CreateItem(0)
      .to = Mid(c00, 2)
      .Subject = ar(1, 1)
      .body = c01
      .display
    End With
  End If
End Sub
 
Hallo er is inderdaad geen verschil te zien, maar bij de uitvoering ervan wel.
Bij de ene sheet worden keurig alle mailadressen (die op ja staan) in de BCC geplaatst
Bij de andere sheet, daar waar de mailadressen ook op ja staan, gebeurd dit niet (blijft helemaal leeg).
Dat is toch vreemd?
 
Mijn voorbeeld is naar mijn mening duidelijk genoeg.
 
klopt het is een heel duidelijk voorbeeld.
helaas het testen geeft nog niet het gewenste resultaat
 
Nee. Je moet uiteraard wel de goede variabelen vullen.
 
Jammer maar helaas. Het ziet er logisch uit maar het is voor mij als super beginneling VBA toch een brug te ver.
Ik heb deze VBA ontdekt op het net. Al enige uren aan het testen en zoeken om, 1 een routine te maken die het mailen verzorgd en de variabelen in een sub specifiek voor het betreffende werkblad niet gelukt.
In ieder geval bedankt.

Hartelijke groet,
Baukjen
 
Laatst bewerkt:
In jouw voorbeelbestand komt in de tab Brief nergens een ja voor. Qua lay-out zie ik geen verschillen in de werkbladen en dan is 1 procedure zonder parameters voldoende. Dus wat is er nu variabel?
 
verschillende mail bestanden

Hierbij nog een keer het bestand.
Heb er nu 3 lijsten (sheets) ingezet want het gaat om verschillende mail bestanden.
Voorlopig met 1 brief, worden er meer.
Als ik lijst1 kolom C op ja zet en dan button mail klik dan worden alle adressen geplaatst in het veld BCC van outlook.
Ga ik dan lijst2 (sheet actief maken) en daar kolom C op ja zetten dan wordt wel het bericht klaar gezet maar niet de mailadressen in de BCC gezet.

Hartelijke groet,
Baukjen
 

Bijlagen

  • Mail.xlsm
    32,3 KB · Weergaven: 28
Lijkt mij logistisch

Code:
For Each cell In ThisWorkbook.Sheets("lijst1").Range("B1:B50")

Als je de code uit #8 had gebuikt dan was het probleem er niet. Deze gaat uit van de activesheet mits je het aan een knop koppelt. Verder zie ik nog steeds geen variatie in de sheets dus zou gewoon moeten werken. Even los van .to of .bcc.
 
Beste mensen, nogmaals bedankt voor de uitleg.
Wat ik al eerder beschreef ik ben een super beginneling met VBA en snap niet wat er bedoeld wordt met variabelen?
Ik begrijp best dat de antwoorden die gegeven worden voor ingewijden begrijpbaar en logisch zijn, maar voor mij helaas nog niet.

Het stukje VBA code heb ik via het net gevonden en werkt goed voor sheet1 (lijst1 met mailadressen). Zodra ik dus een kopie maak om hetzelfde te willen gebruiken voor sheet2 (lijst2 met mailadressen) dan werkt het niet. Althans niet als ik het test ondanks dat ik aangeef in de kopie dat het om lijst2.

Sub Mail_ActiveSheet()
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
For Each cell In ThisWorkbook.Sheets("lijst2") etc etc.


Dus ik laat het hier voorlopig maar bij. Verder zoeken en verdiepen in de materie en misschien lukt het mij dan.

Hartelijke groet,
Baukjen
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan