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

Cel leeg dan MsgBox anders code verder door laten lopen

Status
Niet open voor verdere reacties.

peter59

Terugkerende gebruiker
Lid geworden
21 mei 2007
Berichten
2.711
Besturingssysteem
Windows 11
Office versie
Office 365
Hallo,

Ik ben aan het stoeien met een macro code. Maar het wil maar niet lukken.

Er dient in cel C1 gegevens geplakt te worden uit een ander bestand. Dat bestand is dynamisch.
Is er dus niets in C1 geplakt dan dient er een MsgBox te voorschijn te komen. Dat lukt ook maar na plakken van gegevens in cel C1 loopt de code niet door.
De gehele code is gekoppeld aan een button en deze code staat in een module.
In de bijlage het begin van deze code.

Ik hoop dat het e.e.a. duidelijk is.
Dank alvast voor het meedenken.

Code:
Sub ToonWaarschuwing()

'als cel C1 leeg is dan zegt de macro:

    If Range("C1") = "" Then MsgBox ("Plak eerst in cel C1 de gegevens vanuit BREMMA")
    
    Exit Sub

'Sub bAanpassenEnKopieren()

Application.ScreenUpdating = False

    Columns("I:T").Select
    Selection.Delete Shift:=xlToLeft
    
'WijzigDatum()
    Range("K2").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(DATEVALUE(RC[-3]),"""")"
 
Kijk eens naar die Exit Sub. Als de code daar langs loopt, wat hij gegarandeerd doet in jouw code, stop de macro.
 
Hallo JVeer

Ja, precies er dient nog iets na te komen zoals Else, End if.
Ik heb met mijn abominabele kennis van VBA al vanalles geprobeerd.
Maar niets lukt.

Mvg
Peter
 
Zoiets

Code:
Sub j()
 If Range("C1") = "" Then
     MsgBox ("Plak eerst in cel C1 de gegevens vanuit BREMMA")
     Exit Sub
 Else
     je acties
 End If
End Sub



De kolommen deleten kan ook zo

Code:
Columns("C:D").EntireColumn.Delete xlShiftToLeft
 
Hallo JVeer


Dank.
Helaas, er komt een foutmelding.

Schermafbeelding 2021-03-23 172848.jpg

De tip van jou v.w.b. aanpassen regels neem ik ter harte.
De div. macro's zijn opgenomen met de recorder.
Deze heb ik al zoveel als mogelijk opgeschoond. Momenteel staan er nog div. regels in, waaronder die van jou, welke nog aan verbetering toe zijn.
Dat is een mooi karweitje voor als het geheel functioneert.

Mvg
Peter
 
Die foutmelding is zo logisch dat je dat zelf zou moeten kunnen verhelpen.
Omdat je niet je code laat zien is zo niet te zeggen wat je precies moet doen.
 
Onder de else moet je wel iets neerzetten dat werkt
En schrijf t zoals ik t heb voorgedaan
 
Hallo Excelexperts

Onderstaand de code.
En ja deze dient nog behoorlijk opgeschoond te worden.
Voor mij, als leek zijnde is de code zo een klein beetje leesbaar.

Code:
Sub ToonWaarschuwing()

'als cel C1 leeg is dan zegt de macro:

    If Range("C1") = "" Then MsgBox ("Plak eerst in cel C1 de gegevens vanuit BREMMA")
    
    Exit Sub
    
Else

'Sub bAanpassenEnKopieren()

Application.ScreenUpdating = False

    Columns("I:T").Select.EntireColumn.Delete xlShiftToLeft
    
'WijzigDatum()
    Range("K2").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(DATEVALUE(RC[-3]),"""")"
    Range("K2").Select
    Selection.AutoFill Destination:=Range("K2:K1000")
    Range("K2:K1000").Select
    Selection.Copy
    Range("H2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Selection.NumberFormat = "ddd dd/mm/yy"
    Columns("K:K").Select
    Selection.Delete Shift:=xlToLeft
    
'FilterKlantcode()
    Range("G1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$J$1000").AutoFilter Field:=7, Criteria1:=Array( _
        "20001 - USG - DIPSI-90000127.0198.1 Ademlucht", _
        "20002 - USG - DIPSI-90000127.0198.2 Blusmiddelen", _
        "30001 - DSM Advanced Solar - DIPSI-90000127.0461.1", _
        "30002 - DSM Biomedical - DIPSI-90000127.0805.1", _
        "30003 - DSM Science & Technology - DIPSI-90000127.9910.1", _
        "30004 - DSM DEP - DIPSI-90000127.0236.1", _
        "40000 - Polyscope - DIPSI-90000127.0282.1", _
        "40001 - Sekisui - DIPSI-90000127.0273.1", _
        "50003 - Stork - DIPSI-90000127.0230.3", _
        "50009 - BLM Wegenbouw - DIPSI-90000127.0056.1"), Operator:=xlFilterValues
        
'KopieerBRemmaNaarTemplate()
    Range("A3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("template").Select
    Range("G3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Sheets("Geg BREMMA").Select
    Range("B3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("template").Select
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Sheets("Geg BREMMA").Select
    Range("C3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("template").Select
    Range("F3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Sheets("Geg BREMMA").Select
    Range("F3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("template").Select
    Range("D3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Sheets("Geg BREMMA").Select
    Range("H3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("template").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Range("A2").Select
    Sheets("Geg BREMMA").Select
    ActiveSheet.Range("$A$1:$J$1000").AutoFilter Field:=7
    Selection.AutoFilter
    Range("C1").Select
    Sheets("Geg rap.17 EMMA").Select
    Range("A1").Select

Application.ScreenUpdating = True

End If

End Sub
 
De msgboxregel moet sws een regel naar beneden.
Enter na Then
 
JVeer,

Dank je.
Het is ongelofelijk wat die enter na Then teweeg heeft gebracht.
De code doet het!!

JVeer , wederom heel hartelijk dank voor het meedenken en de geboden oplossing.
Edmoor, natuurlijk ook dank.

Mvg
Peter
 
als je de code zo begrijpt zou ik het lekker zo laten
 
Ja, JVeer

Ik ben er heilig van overtuigd dat jullie VBA Experts de code vele malen korter kunnen schrijven.
Voor mij als leek wordt het dan een hele puzzel oftewel, euhhh?

Ik kan code, welke is opgenomen met de macro-recorder, een klein beetje ontleden/vertalen en iets opschonen.
Ik probeer mij wel een beetje te verdiepen hoe nu het e.e.a. in elkaar steekt.

Ben bezig met enkele VBA trainingen die op YouTube te vinden zijn zoals:
https://www.youtube.com/watch?v=G05TrN7nt6k
https://www.youtube.com/watch?v=MeKL_n6SiYY

Misschien hebben andere forumleden hier ook nog iets aan.

JVeer, nogmaals dank.
 
HSV

Dank voor de toevoeging.
Ja, ik kan nog even vooruit met het e.e.a. op te schonen.
Al doende leert men al is het nog maar de basis.

Mvg
Peter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan