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
Répondre
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
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
Veuillez partager votre travail. Nous pouvons suggérer/aider. – Valli
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
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