2017-10-09 8 views
-1

Donc d'abord mon avertissement. Même si j'ai de l'expérience en programmation, je ne maîtrise pas les scripts VB, je vais peut-être avoir besoin d'un peu de main, mais je suis très reconnaissant pour toute aide que vous pouvez rendre. Je crée un bouton d'impression qui imprime une feuille de calcul en fonction des critères que l'utilisateur saisira. Eh bien, j'ai besoin du script pour vérifier certaines cellules dans une rangée et s'il y a des données dans ces cellules, passer à la suivante ligne. Rincez et répétez jusqu'à ce que vous obteniez une ligne sans données dans ces cellules, puis imprimez automatiquement le nombre correct de pages en fonction des données. J'espère que cela à du sens. J'espère que cela à du sens.Création d'un bouton d'impression basé sur des critères conditionnels dans Excel

+0

Veuillez partager votre travail. Nous pouvons suggérer/aider. – Valli

+0

Je n'en ai pas. J'ai quelques bribes de code que j'ai trouvé en faisant des recherches mais sans formation formelle dans VB Scripting, c'est comme déchiffrer un code. C'est pourquoi je suis ici pour demander de l'aide. Je ne vous demande pas de le faire pour moi, je vous demande de me diriger dans la bonne direction. Je ne sais pas pourquoi vous pensez que cela mérite un négatif sur mon compte, mais peu importe. – Gehn47

+0

Vous recherchez donc la première cellule vide? MATCH (VRAI, INDEX (C: C = "", 0), 0). Cela vous renverra le numéro de ligne de la première cellule vide dans la colonne C. – Valli

Répondre

0

J'ai essayé d'écrire un morceau de code pour vérifier certaines colonnes et retourner la valeur lorsque toutes ces colonnes sont vides. Espérons que cela vous aide

Sub Printing() 
     Dim CheckCol1 As Integer, CheckCol2 As Integer 
     Dim rowCount As Integer, rowCount1 As Integer, rowCount2 As Integer, currentRow As Integer 
     Dim currentRowValue1 As String, currentRowValue2 As String 
     Dim found As String 
     found = "No" 
     CheckCol1 = 1 'column A has a value of 1 
     CheckCol2 = 2 'column B has a value of 2 

     rowCount1 = Cells(Rows.Count, CheckCol1).End(xlUp).Row 
     rowCount2 = Cells(Rows.Count, CheckCol2).End(xlUp).Row 
     rowCount = Application.Max(rowCount1, rowCount2) 

     ' find the first blank cell on both the columns 
     For currentRow = 1 To rowCount 
      currentRowValue1 = Cells(currentRow, CheckCol1).Value 
      currentRowValue2 = Cells(currentRow, CheckCol2).Value 

      If (IsEmpty(currentRowValue1) Or currentRowValue1 = "") And (IsEmpty(currentRowValue2) Or currentRowValue2 = "") Then 
       MsgBox ("No data on Column A and B in row" & currentRow) 
       found = "Yes" 
      End If 
     Next 
     If found = "No" Then ' This will return rowcount+1 when the columns have values throughout the range 
      MsgBox ("No data on Column A and B in row" & rowCount + 1) 
     End If 

    End Sub 

Remarque: - Vous pouvez augmenter le nombre de colonnes à vérifier en ajoutant peu de variables. Vous pouvez essayer Ajouter une troisième colonne en ajoutant Checkcol3, rowcount3, currentrowvalue3 et en ajoutant une condition supplémentaire à la clause if

+1

Non cela fonctionnera parfaitement. Je peux alors ajouter le .printout basé sur quelle page il trouve la première rangée ou la colonne qui est complètement vide. Je vous remercie. – Gehn47