![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
, le forumJ'ai un bouton qui me permet d'imprimer une feuille, afin de ne pas faire un aperçu, j'aurai aimé faire un test si le tableau comprenais ou non des données, donc : Si données impression de la feuille Si pas de données retour au menu. Voici mon code pour l'impression : Private Sub CommandButton12_Click()'Si clic ferme USF ajout groupe et active feuille 7 Tool_grou Dim Impr Unload Me Feuil7.Activate Impr = MsgBox("Voulez-vous imprimer la base de données Tool_grou ?", vbYesNo, "CONFIRMATION") If Impr = vbYes _'Si Oui imprime feuille active Then ActiveSheet.PrintOut Else ' Si non retour au USF ajout groupe Feuil9.Activate USF_AjoutGroupe.Show 0 End If End Sub Comment dois-je m'y prendre, sachant que mes données vont de : B2-C2-D2 jusqu'a B100-C100-D100 Merci de votre aide, G'Claire |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir G'Claire
avec un petit artifice : en cellule A101 tu mets la formule "=NBVIDE(B2 100)"et dans ton code tu remplaces la ligne "ActiveSheet.PrintOut" par "If Range("A101").Value < 297 Then ActiveSheet.PrintOut" L'impression ne s'exécutera que si au moins une cellule de la plage B2 100 n'est pas videBonne soirée |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
BOnsoir G'Claire, re Jacques
Une autre méthode sans feu d'artifice ! Admettons une feuille avec un tableau de A à G avec des Headings, soit 7 Cellules.... Option Explicit Sub TestPlagePrint() Dim Plage As Range Dim X As Integer Set Plage = ActiveSheet.UsedRange X = Plage.Count MsgBox X '<= ici pour tester combien ton tableau "vierge" utilise de cellule, à supprimmer ensuite If X > 7 Then ActiveSheet.PrintOut End Sub Attention cette méthode ne peut fonctionner que sur des tableaux linéaires "standard"... Bonne Nuit @+Thierry |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Petite Précision !
J'ai oublié de préciser aussi, que les formatage de cellules comptent comme UsedRange... Ce qui limite évidemment cette méthode, que j'utilise sur pour des imports de données sur des feuilles vierges ne contenant que des entêtes. @+Thierry |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Salut a toutes et tous
Merci, Jacques et @Thierry Mais plus plates ecxuses pour cette réponse tardive, mais j'était sur un spectacle depuis mercredi et je ne suis pas allez beaucoup sur le net ces derniers temps. En faite @Thierry ce que j'essaye de faire c'est de rajouter a ton fichier USFThierrysContact, un mode impression avec un aperçu avec les données et pouvoir imprimer une feuille sans les données. Le mode impression et aperçu cela va, mais je n'arrive pas a faire l'impression du tableau sans les données. Je vous remerci d'avance pour votre aide Bonne soirée, G'Claire |
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir G'Claire, Jacques, le Forum
Huum je ne comprends plus ??? "je n'arrive pas a faire l'impression du tableau sans les données" Je croyais que c'était l'inverse que tu désirais ? Tester si il y avit des données ? à quoi celà sert d'imprimer un Tableau vide ??? Là je patauge !! Bon Week End @+Thierry |
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
Resalut
Merci @Thierry de ctte réponse rapide, au départ oui je voulais un test au lancement du l'UserForm mais je pense que cela ètait plus compliquer de faire un test de tableau pour savoi si il est vide que de demader au moment de l'impression si je veux imprimer une feuille avec les données ou sans. Le but pour moi de pouvoir avoir une feuille exempt de données, c'est de pouvoir a chaque nouvelle saison donner une feuille vierge aux présidants des écoles de danses afin qu'ils la remplisse, pour éviter de courrire aprés tout le monde afin de receuillir les coordonnées. Voila j'espère avoir bien expliquer le pourquoi de ce choix. Encore merci, G'Claire |
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
Re G'Claire
Ben je ne sais pas ce que tu trafiques, mais si tu as bien développé ton truc, tu devrais pouvoir sortir ton tableau sans avoir de souci particulier... Je ne sais pas moi comment ton tableau se présente, mais tu pourrais faire une sorte de test comme ceci : Sub TestPlageVide() Dim Plage As Range, Cell As Range Dim X As Integer Dim msg As Byte With Sheets(1) Set Plage = Application.Union(.Range("A1"), .Range("E1"), .Range("A5:G30"), .Range("A40:G45")) End With For Each Cell In Plage If Not IsEmpty(Cell) Then X = X + 1 Next If X >= 1 Then msg = MsgBox("Le tableau n'est pas vide, voulez vous le purger ?", vbCritical + vbYesNo, "Warning") If msg = 6 Then Plage.ClearContents Sheets(1).PrintOut Else Sheets(1).Activate End If Else Sheets(1).PrintOut End If End Sub Dans le set avec la Méthode Union tu dois définir tes plages, tu as droit à 30 arguments Range... Voilà cette fois je pense t'avoir compris ![]() Bon Déveoppement et bon Wouik Hand @+Thierry |
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
Salut le forum, @Thierry
Merci, pour ton aide. En faite j'avais je pense deux solutions. 1) Soit faire un test a l'ouverture de l'UserForm de ma page Tool_grou pour savoir si oui ou non il y avait des données 2) Soit au moment de l'impression me demander si je veux imprimer une feuille vierge ou une feuille rempli. En utilisant la méthode 1 : A l'ouverture de l'UserForm un code me test si la page a des données : Si il y a des données cela veut dire que j'ai déja rentré mes coordonées donc cela continue normalement comme tu l'a prévu Si pas de données, cela me demande si je veux imprimer une feuille vierge une fois le feuille imprimée cela continue comme tu l'a prévu Si méthode 2 utilisée : Au moment de l'impression une MsgBox me demande si je veux imprimer une feuille rempli ou une feuille vierge et dans les deux cas avec un aperçu. Mais c'est juste pour l'impression la suppression des données car je ne veux pas purger ma feuille définitivement Voila j'espère être plus explicit Je te et vous remerci, G'Claire |
|
|
#10 (permalink) |
|
Guest
Messages: n/a
|
SAlut G'Claire, le Forum
Je ne sais pas comment tu fais mais tu as l'art de te noyer dans un tas de complications depuis le temps que je te croise dans ce Forum !!! Le test que je t'ai donné fait ce que tu veux... A Savoir : Tester dans une plage définie par Union Range qui te permet de choisir sélectivement dans les différentes partie de ton tableau les zone qui doivent être vide/vide de celles qui contiennent des informations standards ou de mise en page du tableau.... Une fois que tu auras paramétrer dans le "Set Plage" toutes les zones qui doivent être vides... Le test fonctionnera.... Maintenant le moment où tu le lance n'a strictement aucune importance ! Tu peux le lancer quand tu veux et ton "Tool_Gourou" (lol) je m'en contre-fiche dans ce test, c'est juste la page du tableau qui doit être clairement définie ici : With Sheets(1) Set Plage = Application.Union(.Range("A1"), .Range("E1"), .Range("A5:G30"), .Range("A40:G45")) End With Ici j'utilise l'index (1) premier onglet à partir de la gauche, mais ce pourrait être With Sheets("Mon_Bo_Tablo_Gourou_Gourou") 'mdrr Ensuite pour les évènement que j'ai prévu, je pense que ce n'est pas difficile à modifier... Ensuite, si tu veux conserver ta feuille avec des donnée alors il faut la copier pour purger la copie, l'imprimer et ensuite la supprimer, tu as déjà pratiquement toute la procédure pour Copy d'une feuille et la placer là où tu veux dans "Gestion_de_Ballets.xls", il ne manque que le Delete de feuille pour lequel il faut juste mettre en OFF le DisplayAlerts avant l'intruction pour ne pas être embété par Excel. Application.DisplayAlerts = False Sheets(X+1).Delete Application.DisplayAlerts = True Pour ce qui est de faire un aperçu avant impression, là il suffit de faire ceci, of course,avant de faire le Delete si tu dois l'appliquer : With Sheets(X+1) 'si c'est la copie placée en fin d'index de feuille .PrintPreview .PrintOut End With Voilà G'claire, je pense que cette fois-ci tu as tous les éléments... Bon Travail et bon samedi @+Thierry |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|