uitvoer code niet zichtbaar

Status
Niet open voor verdere reacties.

Ikke1976

Gebruiker
Lid geworden
2 apr 2008
Berichten
26
Via welke code kan ik een code uitvoeren terwijl deze code (lees uitvoer) niet zichtbaar wordt

Uitleg:
In Excel worden in een tabblad (=hoofdscherm) 3 gegevens gekopieerd naar een nieuwe tabblad. Dit tabblad wordt vervolgens geprint (=etiket, 3 regels). Bij het uitvoeren van de code "schiet" Excel naar dit tabblad. Graag zou ik zien dat Excel dit niet doet.

Ik heb het al geprobeerd om het tabblad waar de gegevens ingezet worden om deze te verbergen, maar dan helaas een foutmelding.

Indien het op een andere manier kan / moet dan zijn suggesties natuurlijk altijd welkom.

Alvast bedankt voor de reaties.

Bert
 
Laatst bewerkt:
zorg dat de code geen gebruik maakt van select of activate
 
De gegevens worden nu al "geexporteerd" zonderer dat dit weergegeven wordt :-)

Maar nu gaat het nog fout tijdens het printen.
Via welke code zou ik dit kunnen oplossen?
 
Onderstaand de code die ik al heb.

Het etiket komt er ongeveer als volgt uit te zien
naam : gekopieerde cel A
adres : gekopieerde cel B
plaats : gekopieerde cel C

Alvast bedankt.

De gegevens worden gekopieerd naar het tabblad Etiket.
In de kolommen A1 tot en met B3 staan ook gegevens die geprint moeten worden.

Sub kopieeren_cellen_naar_etiket()
‘In de rij waar de cursor staat worden onderstaande cellen/kolommen (A, B & D) gekopieerd naar een ander tabblad.
Sheets("Werkblad").Select
Sheets("Etiket").Rows(1).Cells(3).Value = ActiveSheet.Cells(ActiveCell.Row, "d").Value
Sheets("Etiket").Rows(2).Cells(3).Value = ActiveSheet.Cells(ActiveCell.Row, "a").Value
Sheets("Etiket").Rows(3).Cells(3).Value = ActiveSheet.Cells(ActiveCell.Row, "b").Value
End Sub
=====
Sub Etiket_printen()
‘hier wordt het tabblad etiket geprint.
Sheets("Etiket").Select
Range("A1:C3").Select
Application.ActivePrinter = "Smart Label Printer 440 op Ne00:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""Smart Label Printer 440 op Ne00:"",,TRUE,,FALSE)"
End Sub
 
Laatst bewerkt:
Zo misschien?

Code:
Sub Etiket_printen()
‘hier wordt het tabblad etiket geprint.
   Application.ActivePrinter = "Smart Label Printer 440 op Ne00:"
   Sheets("Etiket").PrintOut
End Sub
 
Indien ik deze opdracht uit laat voeren, dan switch excel nog naar het bewuste tabblad. Dit wilde ik juist onzichtbaar laten verlopen, zodat niemand ziet waar de gegevens vandaan gehaald worden.
 
Vervang
Sub kopieeren_cellen_naar_etiket()
‘In de rij waar de cursor staat worden onderstaande cellen/kolommen (A, B & D) gekopieerd naar een ander tabblad.
Sheets("Werkblad").Select
Sheets("Etiket").Rows(1).Cells(3).Value = ActiveSheet.Cells(ActiveCell.Row, "d").Value
Sheets("Etiket").Rows(2).Cells(3).Value = ActiveSheet.Cells(ActiveCell.Row, "a").Value
Sheets("Etiket").Rows(3).Cells(3).Value = ActiveSheet.Cells(ActiveCell.Row, "b").Value
End Sub
door
Code:
Sub kopie()
  for j=1 to 3
    activesheet.cells(activecell.row,choose(j,4,1,2)).copy sheets("Etiket").cells(j,3)
  next
End Sub
Als je de gegevens in je werkblad verstandiger zou opbouwen: naam in kolom A, adres in kolom B en plaats in kolom C, kan de code veel eenvoudiger worden.
En het helpt als je eerdere suggesties overneemt: vermijd select en activate in VBA-code.
 
Snb,

Vervang [...]

door
Code:
Sub kopie()
  for j=1 to 3
    activesheet.cells(activecell.row,choose(j,4,1,2)).copy sheets("Etiket").cells(j,3)
  next
End Sub

Deze code veronderstelt dat blad Werkblad het actieve blad is, niet?
 
Omdat de vragensteller ook werkt met activecell, kan het niet anders dan dat de macro wordt gestart vanuit het werkblad met de regels met de te kopiëren adresgegevens.
Maar voor hetzelfde geld:
Code:
Sub kopie()
  application.screenupdating=false
  with sheets("werkblad")
    for j=1 to 3
      .cells(.activecell.row,choose(j,4,1,2)).copy sheets("Etiket").cells(j,3)
    next
  end with

End Sub
 
Laatst bewerkt:
Bedankt. Zo wordt het inderdaad overzichtelijker.

Maar.

Nu wil ik het eigenlijk zo maken dat zodra de printopdracht wordt gegeven dat het niet zichtbaar is dat de gegevens worden opgehaald uit het tabblad Etiket.

Nog makkelijker zou natuurlijk zijn om de gegevens rechtstreeks uit het werkblad te halen en te printen als etiket. Dit dan wel naam, adres en plaats ervoor.

Alvast bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan