Vba macro onderbreken met msgbox, handmatige handeling, en weer door

Status
Niet open voor verdere reacties.

1965Peter

Gebruiker
Lid geworden
20 jun 2016
Berichten
197
Hallo,

Kan ik een macro onderbreken dmv msgbox met tekst:"Vul de kolommen",
dat ik dan een handmatige handeling kan uitvoeren, en dmv "ok knop" weer verder met de macro?
 
Waarom kan de macro gestart worden als nog niet aan alle voorwaarden is voldaan ?
 
probleem is dat ik 2 kolommen ergens vandaan moet halen die elke maand op een andere plek staan, dus dacht ik, dmv msgbox de opdracht te stoppen, handmatig de kolommen erbij zetten, en dan op de ok van de msgbox drukken zodat deze verder gaat. Ik heb dit geprobeerd, alleen kan ik niets uitvoeren, en alleen op ok drukken. Andere oplossing zou zijn dat de macro dan stopt en dat ik een vervolg maak. Maargoed dat zou de laatste oplossing zijn als het andere niet kan.
 
Je kan de gewenste kolommen ook selecteren en dan pas verder gaan.
Dan heb je de range die moet worden gekopieerd.
Bijvoorbeeld:
Code:
Sub CelSelect()
    Dim rng As Range
    Set rng = Application.InputBox("", "Selecteer het gewenste bereik", , , , , , 8)
End Sub
 
Hallo Edmoor, probeer uit te voeren wat je zegt, maar gebeurt niets. Dan toch maar even een bestand erbij.

Kolommen A tm F worden gevuld met Data. (tab Facturatie voorstel)
Dan moet ik uit tab Jaaroverzicht, voor deze maand kolom K & L invoegen in tab Facturatie voorstel G:H
Dit zijn dus elke maand andere kolommen, vandaar dacht ik, dat ik dat dus handmatig doe, en daarna weer verder met de macro.
 

Bijlagen

  • Kolommen handmatig.xlsx
    29,6 KB · Weergaven: 10
Dat bestand bevat geen macro's.
Mijn voorbeeld haalt alleen de gekozen range op.
Het is aan jou wat je daar verder mee wilt doen.
 
Ja die snap ik, stel ik kies dan voor kolom K & L.
Dan krijg ik deze niet geplakt in G & H.
Als dat zou kunnen zou dat perfect zijn.
 
Je moet ook niet plakken.
Je moet VBA de opracht geven om die gekozen range te kopieren of te verplaatsen naar G & H.
 
Dacht er te zijn, maar rng.select accepteert ie niet. Volgens mij zit ik in de goede richting?Of toch niet?




Code:
Sub CelSelect()
    Dim rng As Range
    Set rng = Application.InputBox("", "Selecteer het gewenste bereik", , , , , , 8)
   rng.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.Copy
    Sheets("Facturatie Voorstel").Select
    Columns("G:G").Select
   Selection.Copy
    Sheets("Facturatie Voorstel").Select
    Columns("G:G").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
 
Nooit .Select gebruiken.
Probeer deze maar eens:
Code:
Sub CelSelect()
    Dim rng As Range
    Set rng = Application.InputBox("", "Selecteer het gewenste bereik", , , , , , 8)
    Columns("G:H").Value = Sheets("Jaaroverzicht").Range(rng.Address).Value
End Sub
 
Hij doet nu de hele kolommen.
Je kan het wat optimaliseren door alleen het gebruikte bereik te kopiëren.
 
Kolommen is wel best, ivm variabel aantal regels. ik pas mijn target kolom wel aan
 
em ook geen overbodige variabelen:

Code:
Sub M_snb()
  with Application.InputBox("", "Gebied", , , , , , 8)
      .cells(1,7).resize(.rows.count,.columns.count)= .Value
  end with
End Sub
 
Netjes :)
Een variabele zet ik er bij mocht bij TS de Option Explicit aan staan.
 
Daar heeft een code zonder variabele geen last van... ;)
 
Klopt.
In jouw versie is die helemaal overbodig :)
 
Die msgbox is overigens overbodig als je met de cursor in de 1e te kopiëren kolom gaat staan:

Code:
Sub M_snb()
  activecell.columns(1).specialcells(2).resize(,2).copy sheets(1).cells(1,7)
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan