• 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.

Verborgen rijen niet mailen via vba

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
864
Ik heb een bestand bestaande uit twee tabbladen. Eerste bevat ruwe data , het tweede is een standaardformulier dat gegevens overneemt vanuit het eerste.

Het standaardformulier wil ik mailen, niet volledig, een beperkte range enerzijds maar anderzijds mogen de verborgen rijen niet gemaild worden.

De lege rijen (weliswaar met een formule er in ) verberg ik met een autofilter.

Code:
Sub verbergen()
    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveSheet.Range("$B$1:$B$200").AutoFilter Field:=1, Criteria1:=">0.01"
    Range("a1").Select
End Sub

Daarna laat ik de macro send_range uitvoeren

Code:
Sub Send_Range()
   
Application.Run "verbergen"
   
   ActiveSheet.Range("A2:D27").Select
   
   ActiveWorkbook.EnvelopeVisible = True
   
   With ActiveSheet.MailEnvelope
      .Item.To = "geef een geldig mailadres in"
      .Item.Subject = Range("b5")
      .Item.Send
   End With
End Sub

Ik krijg een foutmelding 400. Wat zou er fout gaan ?

Bekijk bijlage mail verborgen rijen.xlsm
 
Vervang:
Application.Run "verbergen"

eens door:
verbergen
 
Gewoon 1 procedure gebruiken.

Code:
Sub VenA()
  Columns(2).AutoFilter 1, ">0.01"
  ActiveWorkbook.EnvelopeVisible = True
  With ActiveSheet.MailEnvelope
    .Item.To = "geef een geldig mailadres in"
    .Item.Subject = Range("b5")
    .Item.Send
  End With
End Sub
 
Dit zal beter werken.
Code:
.Item.Subject = sheets("gegevens").Range("b5").value
 
In ieder geval
Code:
range("b5")[COLOR=#0000ff].value[/COLOR]
Ik bekom een foutmelding zonder.

In eerste instantie dacht ik dat het kwam doordat b5 verborgen is na filtering.
 
Dames, Heren,

dank alvast, ik kijk dit na en laat iets weten.
 
Het werkt, jammer genoeg valt het eindresultaat in de mail niet mee, zie hieronder. Misschien moet ik eerst op zoek naar tijdelijk overzetten van de selectie , de rijen deleten en dan pas te mailen.








data 1 15




data 4 16






data 8 20






data 12 1




data 15 33


het zou mooier zijn indien onderstaand het resultaat werd:

data 1 15
data 4 16
data 8 20
data 12 1
data 15 33
 
Laatst bewerkt:
Bij mij is het resultaat zoals jij het wil hebben.
Vreemd waarom bij jou niet.
 
Bij mij werkt het ook gewoon.

Alternatief met extra tabje

Code:
Sub VenA()
  Application.DisplayAlerts = False
  Columns(2).AutoFilter 1, ">0.01"
  Cells(7, 1).CurrentRegion.Copy Sheets.Add.Cells(1)
  ActiveWorkbook.EnvelopeVisible = True
  With ActiveSheet.MailEnvelope
    .Item.To = "geef een geldig mailadres in"
    .Item.Subject = Sheets("formulier").Range("B5").Value
    .Item.Send
  End With
  ActiveSheet.Delete
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan