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

hoe flikkeren stoppen

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
481
beide bestanden openen om te testen
kan iemand het flikkeren stoppen als macro 1 wordt uitgevoerd
 

Bijlagen

Code:
Application.ScreenUpdating = False

Code:
Application.ScreenUpdating = True
 
zo?
met na active van tweede screenupdate weer uit zetten.
Code:
Windows("Tweede.xlsx").Activate
Application.ScreenUpdating = False
 
hierbij 2 code's
Sub Met = met Application.ScreenUpdating = False
Sub Zonder = zonder Application.ScreenUpdating = False
in beide gevallen flikkert het scherm, enige verschil is dat de celwaarden veranderen

iemand een oplossing?

Code:
Sub Met()

Windows("Eerste.xlsm").Activate
x = Range("TELLER").Value
For i = 0 To x
Range("NUMMER") = i
Calculate
Application.ScreenUpdating = False
NAAM_1 = Range("NAAM_1").Value
NAAM_2 = Range("NAAM_2").Value
NAAM_3 = Range("NAAM_3").Value
NAAM_4 = Range("NAAM_4").Value
NAAM_5 = Range("NAAM_5").Value
NAAM_6 = Range("NAAM_6").Value
NAAM_7 = Range("NAAM_7").Value
NAAM_8 = Range("NAAM_8").Value
NAAM_9 = Range("NAAM_9").Value
NAAM_10 = Range("NAAM_10").Value
NAAM_11 = Range("NAAM_11").Value
NAAM_12 = Range("NAAM_12").Value
NAAM_13 = Range("NAAM_13").Value
NAAM_14 = Range("NAAM_14").Value
NAAM_15 = Range("NAAM_15").Value
NAAM_16 = Range("NAAM_16").Value
NAAM_17 = Range("NAAM_17").Value
NAAM_18 = Range("NAAM_18").Value
NAAM_19 = Range("NAAM_19").Value
NAAM_20 = Range("NAAM_20").Value


Windows("Tweede.xlsx").Activate
Application.ScreenUpdating = False
Application.Wait DateAdd("s", 1, Now)
Range("NAAM_1") = NAAM_1
Range("NAAM_2") = NAAM_2
Range("NAAM_3") = NAAM_3
Range("NAAM_4") = NAAM_4
Range("NAAM_5") = NAAM_5
Range("NAAM_6") = NAAM_6
Range("NAAM_7") = NAAM_7
Range("NAAM_8") = NAAM_8
Range("NAAM_9") = NAAM_9
Range("NAAM_10") = NAAM_10
Range("NAAM_11") = NAAM_11
Range("NAAM_12") = NAAM_12
Range("NAAM_13") = NAAM_13
Range("NAAM_14") = NAAM_14
Range("NAAM_15") = NAAM_15
Range("NAAM_16") = NAAM_16
Range("NAAM_17") = NAAM_17
Range("NAAM_18") = NAAM_18
Range("NAAM_19") = NAAM_19
Range("NAAM_20") = NAAM_20

Windows("Eerste.xlsm").Activate
Application.ScreenUpdating = False
Application.Wait DateAdd("s", 1, Now)
Next i

Application.ScreenUpdating = True
End Sub



Code:
Sub Zonder()

Windows("Eerste.xlsm").Activate
x = Range("TELLER").Value
For i = 0 To x
Range("NUMMER") = i
Calculate
'Application.ScreenUpdating = False
NAAM_1 = Range("NAAM_1").Value
NAAM_2 = Range("NAAM_2").Value
NAAM_3 = Range("NAAM_3").Value
NAAM_4 = Range("NAAM_4").Value
NAAM_5 = Range("NAAM_5").Value
NAAM_6 = Range("NAAM_6").Value
NAAM_7 = Range("NAAM_7").Value
NAAM_8 = Range("NAAM_8").Value
NAAM_9 = Range("NAAM_9").Value
NAAM_10 = Range("NAAM_10").Value
NAAM_11 = Range("NAAM_11").Value
NAAM_12 = Range("NAAM_12").Value
NAAM_13 = Range("NAAM_13").Value
NAAM_14 = Range("NAAM_14").Value
NAAM_15 = Range("NAAM_15").Value
NAAM_16 = Range("NAAM_16").Value
NAAM_17 = Range("NAAM_17").Value
NAAM_18 = Range("NAAM_18").Value
NAAM_19 = Range("NAAM_19").Value
NAAM_20 = Range("NAAM_20").Value


Windows("Tweede.xlsx").Activate
'Application.ScreenUpdating = False
Application.Wait DateAdd("s", 1, Now)
Range("NAAM_1") = NAAM_1
Range("NAAM_2") = NAAM_2
Range("NAAM_3") = NAAM_3
Range("NAAM_4") = NAAM_4
Range("NAAM_5") = NAAM_5
Range("NAAM_6") = NAAM_6
Range("NAAM_7") = NAAM_7
Range("NAAM_8") = NAAM_8
Range("NAAM_9") = NAAM_9
Range("NAAM_10") = NAAM_10
Range("NAAM_11") = NAAM_11
Range("NAAM_12") = NAAM_12
Range("NAAM_13") = NAAM_13
Range("NAAM_14") = NAAM_14
Range("NAAM_15") = NAAM_15
Range("NAAM_16") = NAAM_16
Range("NAAM_17") = NAAM_17
Range("NAAM_18") = NAAM_18
Range("NAAM_19") = NAAM_19
Range("NAAM_20") = NAAM_20

Windows("Eerste.xlsm").Activate
'Application.ScreenUpdating = False
Application.Wait DateAdd("s", 1, Now)
Next i

'Application.ScreenUpdating = True
End Sub
 
Code:
Sub VenA()
ar = ThisWorkbook.Sheets("Blad1").Cells(1).CurrentRegion
  With GetObject(ThisWorkbook.Path & "\Tweede.xlsx").Sheets("Blad1")
    For j = 3 To Application.Min(ar(1, 1), 20) + 1
      .Range("NAAM_" & j - 2) = ar(j, 1)
    Next j
  End With
End Sub
 
is kort en krachtig, maar in het bestand waar ik het echt voor nodig heb zijn alle namen totaal verschillend
in de bijgevoegde bestanden zijn er enkele namen aangepast maar voor gebruik zijn de namen totaal anders
ook wordt outlook opgestart, kan een macro outlook minimaliseren, kan er ingesteld worden om outlook niet opnieuw te openen als de macro nogmaals wordt uitgevoerd.
het flikkerprobleem is ook nog niet opgelost
 

Bijlagen

Huur een programmeur in of neem een cursus VBA voor dummies. Alles bij elkaar vragen via dit forum, zeker als je er zelf niet veel van wil begrijpen, is niet het doel van dit forum. Probeer eens logisch na te denken. B2 de naam 'NAAM_C3' geven gaat mij boven de pet.
 
De namen in de bestanden zijn bedoeld om te kunnen testen.
kan iemand een oplossing bezorgen voor flikkeren en de vragen omtrent outlook
hieronder een lijst van namen die in werkelijkheid gebruikt worden.
AANTAL_LIJSTEN
AANTAL_MAILS
AANTAL_PDF
AANTAL_PDF_TELLER
ACHTERNAAM
ADRES
BEGINCEL
BESTANDSNAAM
BEWAAR_PDF
BEWAAR_XLSM
BEWAARMAP
BEWAARMAP_PDF
BEWAARNAAM_PDF
BEWAARNAAM_XLSM
BIJLAGE_1
BIJLAGE_10
BIJLAGE_2
BIJLAGE_3
BIJLAGE_4
BIJLAGE_5
BIJLAGE_6
BIJLAGE_7
BIJLAGE_8
BIJLAGE_9
E_MAILADRES
E_MAILADRES_CC
E_MAILADRES_EIGEN_ADRES
E_MAILBIJLAGE
E_MAILONDERWERP
E_MAILTEKST
EERSTE_2
EERSTE_Input_1
EERSTE_Input_2
EERSTE_Input_3
EERSTE_PRINT
EIGEN_E_MAILADRES
FILTERBEREIK
FORMULE_1
FORMULE_2
FORMULE_3
GEBOORTEDATUM
INVOER_1
INVOER_2
INVOER_3
INZENDERSCODE
INZENDERSCODE_INVOEREN
KLASSE
KLN_NUMMER
KOPIËERBEREIK_1
KOPIËERBEREIK_2
KOPIËERBEREIK_3
LAATSTE
LAATSTE_2
LAATSTE_3
LAATSTE_Input_1
LAATSTE_Input_2
LAATSTE_Input_3
LAATSTE_PRINT
LAATSTE_RIJ_LIJST
LETTER
NAAM
NBS_NUMMER
OPENMAP
OPENNAAM
OPMAAK
PLAATS
POSTCODE
PRINTGEDEELTE
SLUITNAAM_1
SLUITNAAM_2
SLUITNAAM_3
SPECIAALCLUB
TABEL
TEKST_1
TEL_1
TELEFOON
TELLER
VERENIGING
VIVFN_NUMMER
ZOEKEN_1
ZOEKEN_2
ZOEKEN_3
 

Dit slaat natuurlijk nergens op, als jij geen oplossing weet @VenA, laat het voor wat het is of kom er eerlijk voor uit dat je geen oplossing weet.

@SUVERMO,

Hiermee open je Outlook als het nog niet is geopend, en anders niet.

Code:
Sub hsv()
Dim OutlApp As Object
 On Error Resume Next
  Set OutlApp = GetObject(, "Outlook.Application")
 On Error GoTo 0
   If OutlApp Is Nothing Then Application.ActivateMicrosoftApp xlMicrosoftMail
End Sub
Of:
Code:
Sub hsv()
 On Error Resume Next
  With GetObject(, "Outlook.Application")
   If Err.Number <> 0 Then Application.ActivateMicrosoftApp xlMicrosoftMail
  End With
End Sub




Normaal zou die andere code hetzelfde moeten doen, maar bij mij opent het Outlook gewoon nog een keer (en bij jou ook zo te vernemen.


In VBA heb ik een hekel aan bereiknamen die vastliggen in 'Namen beheren'.
Bereiken kun je vastleggen in de code.
Dat is veel overzichtelijker.

Ik heb het bestand niet bekeken omwille bovenstaande geschreven door mij.
Het flikkeren kan je beperken door gebruik te maken van.
Code:
Application.screenupdating = false

Het niet gebruiken van select, activate, selection, enz.
 
Laatst bewerkt:
Dag Harry,

ik heb deze morgen pas uw reactie opgemerkt, bedankt hiervoor, heb juist beide codes getest maar geeft niet het gewenste resultaat, telkens als de macro start wordt outlook geopend.

verder nog nog een paar vragen
1° in het midden van de cellen E_mail!B9 E_mail!E7 en E_mail!G16 staat er bij mij een rood puntje, is daar een verklaring voor?
2° is het mogelijk om na het starten van de macro het venster van outlook te minimaliseren en als de macro alle e-mails heeft verzonden outlook te sluiten.

de macro in bijgevoegde is wel geen voorbeeld voor correct gebruik van vba, maar doet wel wat bedoeld was
deze is gemaakt na knip- en plakwerk van opgenomen macro's, goochelen en natuurlijk dit forum
 

Bijlagen

@HSV: Waarom een hekel aan bereiknamen? Juist als je vanuit VBA bepaalde cellen aan wil spreken zijn bereiknamen zo handig. Nooit meer een probleem als rijen of kolommen worden ingevoegd bijvoorbeeld.
 
Het niet gebruiken van select, activate, selection, enz.????
door wat kan dat vervangen worden?
 
Je kunt het helemaal weglaten als je er maar zorgt dat je alle Range verwijzingen laat voorafgaan door het werkblad waar ze over gaan.
Dus bijvoorbeeld in plaats van:
Code:
Worksheets("Blad1").Activate
Range("A1").Select
Selection.Value = 10
gebruik je:
Code:
Worksheets("Blad1").Range("A1").Value = 10
 
@JKP,

Als ik dit eerst uit moet pluizen, dan haak ik al gauw af.
Code:
BIJLAGE_1 = Range("BIJLAGE_1").Value
    BIJLAGE_2 = Range("BIJLAGE_2").Value
    BIJLAGE_3 = Range("BIJLAGE_3").Value
    BIJLAGE_4 = Range("BIJLAGE_4").Value
    BIJLAGE_5 = Range("BIJLAGE_5").Value
    BIJLAGE_6 = Range("BIJLAGE_6").Value
    BIJLAGE_7 = Range("BIJLAGE_7").Value
    BIJLAGE_8 = Range("BIJLAGE_8").Value
    BIJLAGE_9 = Range("BIJLAGE_9").Value
    BIJLAGE_10 = Range("BIJLAGE_10").Value

Twee minuten later ben je het weer kwijt volgens mij.

@SUVERMO,

Bij mij werkt het uitstekend.

Heb je onderstaande er wel uit gehaald?
Code:
Application.ActivateMicrosoftApp xlMicrosoftMail
    Application.Wait DateAdd("s", 5, Now)
 
in het midden van de cellen E_mail!B9 E_mail!E7 en E_mail!G16 staat er bij mij een rood puntje, is daar een verklaring voor?
 
ik heb ze kunnen verwijderen via
zoeken en selecteren
selectie deelvenster

het bestand is een beetje kleiner geworden

bedankt voor de info
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan