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

Van blad1 naar blad2 lege cel blijft leeg

Status
Niet open voor verdere reacties.

Senso

Meubilair
Lid geworden
13 jun 2016
Berichten
9.521
Besturingssysteem
W10 Pro en W11 Pro
Office versie
Office 2007 H@S en Office 2021 Prof Plus
Om bepaalde kolommen af te drukken dacht ik dat het handig was om deze naar blad2 te kopiëren middels
=Blad1!B1. Maar bij doortrekken komt in de lege cellen 0 te staan en dat is niet de bedoeling. Wat is dan de formule?
 
zo?
Code:
=ALS(Blad1!B1<>"";Blad1!B1;"")
 
Getest in het klein. Lijkt mij helemaal goed. Prachtig, bedankt voor jouw inzet en snelheid. Kan ik weer verder.
 
Ben een stukje verder. Nu moet ik telkens kijken welke kolomletter behoort bij een bepaald codenummer.
Dus cel AH2 bevat de tekst met de code S736 (voorbeeld). Maar S226 staat in kolom AE.

Deze kolommen worden altijd per keer geprojecteerd in kolom D op blad 2. Wil ik dan S226 in kolom D dan moet ik in de formule AH vervangen door AE.
Dit werkt wel, maar kun je die code niet koppelen de kolomkopletter.
Indien de kolom in de tekst op blad1 in rij 2 S226 bevat kopieer dan de inhoud van deze kolom naar Blad2 kolom D. Kan dat?
Bekijk bijlage Kolomkopletters koppelen aan code in rij 2.xlsx
 
Laatst bewerkt:
Nee, dat klopt niet. Kan moeilijk het originele bestand plaatsen. Het gaat om het principe duidelijk te maken. Ik heb ook al gezocht en kom op een macro maar dat is vrij ingewikkeld.

Begrijp helaas niets van die formule in post 5.

Wil je die formule dan aanpassen als rij 2 van blad 1 de tekst S226 die kolom geplaatst wordt in blad2 kolom D als dat kan?

Hierbij de macro die ik gevonden heb maar deze zal zo wel onbruikbaar zijn. En ik moet een variabele (code kunnen ingeven) 'bevat tekst'.
Code:
Private Sub CommandButton1_Click()
Dim freerow As Integer
Dim currentrow As Integer
'Determine first free row on sheet2
freerow = 0
Do: freerow = freerow + 1
Loop Until Sheet2.Cells(freerow, 1).Value = ""
'Loop though rows on sheet1
currentrow = 1
Do
    If Sheet1.Cells(currentrow, 2).Value <> "" Then
        'Copy this row
        Sheet2.Rows(freerow).Value = Sheet1.Rows(currentrow).Value
        freerow = freerow + 1
        'Delete old row
        Sheet1.Rows(currentrow).Delete Shift:=xlUp
    Else
        currentrow = currentrow + 1
    End If
Loop Until Sheet1.Cells(currentrow, 1).Value = ""
End Sub
 
Laatst bewerkt:
Onderstaande gemaakt met de macrorecorder.

Code:
Sub Kopieer_Rek_Naar_Blad2_D()
'
' Kopieer_Rek_Naar_Blad2_D Macro
'

'
    Columns("G:G").Select
    Selection.Copy
    Sheets("Blad2").Select
    Columns("D:D").Select
    ActiveSheet.Paste
End Sub

Als je dan Columns("G:G").Select variabel kunt maken met een eigen invoer dan ben je er ook.

Dus start macro met de kolom die geselecteerd is.
 
Niet dat ik enig idee heb van wat je nu uiteindelijk wilt

Code:
Sub VenA()
  Columns(ActiveCell.Column).Copy Sheets("Blad2").[D1]
End Sub

of
Code:
Sub VenA()
  ActiveCell.EntireColumn.Copy Sheets("Blad2").[D1]
End Sub
 
Denk dat het nu gaat lukken. Je kunt in Excel geen selectie van kolommen maken die je op één A4 wilt printen. Als je telkens kolommen moet gaan verbergen om dat deel te printen wat je moet hebben is ook lastig. En maar schuiven.
Nu zijn B en C vast en één kolom D variabel. Dus met jouw macro kan ik dan die D kolom variabel invullen van Blad1 naar Blad2 en dan printen op één A4. Ik zou ook geen andere methode weten. Ga morgen verder. Overigens begrijp ik niet dat een macro gemaakt in een ander document voor dat document/werkblad in een ander document kan opduiken (in het lint). Ga morgen verder.
 
Als ik onderstaande macro activeer in het lint krijg ik de foutmelding Microsoft Visual Basic 400 fout met rood kruis. Voer ik deze uit onder macro dan werkt het goed behalve dat pagina 2 van Blad2 ook wordt afgedrukt en dat mag niet. Alleen pagina 1 van Blad2 mag worden afgedrukt. Waar zitten de fouten?

HTML:
Sub Kopieer_geselecteerde_rekening_naar_Blad2_Kolom_D()
Columns(ActiveCell.Column).Copy Sheets("Blad2").[D1]
    Sheets("Blad2").Select
    ExecuteExcel4Macro "PRINT(2,1,32766,1,,,,,,,,2,,,TRUE,,FALSE)"
End Sub

De 400 fout is volgens mij opgelost door opnieuw de macro in het lint toe te voegen. Zal wel een andere versie hebben gestaan. Nu nog de 2 pagina eruit.

Edit:
Heb alles succesvol kunnen afsluiten. De fout zat in de sorteerfunctie bij Afdrukken (uitvinken). Pagina 1 t/m 1
Dan komt er deze regel uit:
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
en dan wordt pagina 2 niet afgedrukt. Alles werkt nu als een tierelier.

Bedankt allemaal voor de hulp. :thumb:
 
Laatst bewerkt:
Mooi dat je het zelf gevonden hebt.:thumb: Het mag ook zo

Code:
Sub Kopieer_geselecteerde_rekening_naar_Blad2_Kolom_D()
  Columns(ActiveCell.Column).Copy Sheets("Blad2").[D1]
  Sheets("Blad2").PrintOut , 1
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan