Communauté Fb
Follow us on twitter
Les vidéos du site
Le site complément
Dépannage de votre PC

Programmer en vb

Bonjour et bienvenue,

Programmer en VB est le site qui vous fera prendre conscience que vous pouvez concevoir votre programme informatique vous-même, que vous soyez artisan, employé ou étudiant.

Le Visual Basic est un langage informatique très puissant, très flexible et très abordable.
Une version en application se trouve sous Office
Excel pour exemple :
Tapez Alt + F11 à l’aide de votre clavier puis vous voilà dans l’éditeur de code VBA.

Notre forum d’entraide vous offre des tutoriels ainsi que divers exemples tout prêt à adapter à votre projet personnel.
Nous vous demandons uniquement de la bonne humeur et de la bonne volonté pour toutes questions ou toutes aides quelle qu’elle soit.
Sachez que pour progresser rapidement il est conseillé d’aider au mieux les autres membres.
Nous ne sommes pas là pour juger les qualités ou défauts de codes proposés, mais pour trouver ensemble la solution à votre demande.

A vos claviers :

Afin de remplir le forum, nous vous demandons de partager sur les réseaux sociaux et autres.
https://www.facebook.com/AdminPVB/


Merci de nous rejoindre sur http://programmer-en-vb.forumactif.org/
Merci d'avoir pris le temps de lire.
Merci pour votre inscription.

L'équipe de Programmer-en-VB

Forum de programmation VBA et VB.NET

Welcome if you does not speak french,you are able to translate the whole topics with the flags just below of this message. Click to English

Visual Basic Application et VB.net de puissants langages à la portée de tous.

Participez et soyez acteurs des divers forums ci-dessous.

Bienvenue à chaque nouveaux membres et merci à tous ceux qui font vivre ce forum.


Qui est en ligne ?

Il y a en tout 5 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 5 Invités

Aucun


Le record du nombre d'utilisateurs en ligne est de 65 le Mar 8 Juil - 23:40

Statistiques

Nos membres ont posté un total de 5157 messages dans 620 sujets

Nous avons 461 membres enregistrés

L'utilisateur enregistré le plus récent est RACCH

Recherche dans les forums

Utiliser cette méthode afin de trouver rapidement les discussions disponible sur notre forum.


Derniers sujets

» EFFACER LIGNE SUR BASE
par jmcr Hier à 22:54

» Menustrip Vbnet Visual Studio
par Berly Dim 17 Sep - 13:27

» Insertion commentaire dans cellules
par Berly Ven 15 Sep - 20:21

» Chercher un texte dans un commentaire de cellule
par Berly Ven 15 Sep - 20:10

» ameliorer informatique
par jmcr Jeu 14 Sep - 23:19

» question pour le forum
par AdminPVB Jeu 14 Sep - 16:59

» total d'une cellule
par jmcr Lun 11 Sep - 14:51

» CODE ET combobox date enregistrement
par jmcr Lun 11 Sep - 14:49

» compter le nombre de lignes dans un listbox
par jmcr Dim 10 Sep - 11:24

» dossier pdf
par jmcr Mer 6 Sep - 21:40

» suppression d'un fichier txt en cours d'utilisation
par La boc Mar 5 Sep - 20:12

» Boucle sur DataGridView
par AdminPVB Ven 1 Sep - 20:50

» RECHERCHE COMPTABILISER NOMBRE carte
par grisan29 Mar 29 Aoû - 17:49

» ancien temps mis au moderne
par Berly Mar 29 Aoû - 17:18

» Liers des tables dans une BDD
par La boc Mar 29 Aoû - 11:01

Utiliser le bouton résolu

Dans votre message d'origine
cliquer sur le bouton



Ensuite tout en bas sur
Modifier le titre du sujet
cliquer sur le bouton

Résolu !!!

Ensuite changer l’icône du sujet par le bouton

Voilà pas plus compliqué que cela.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Partenaires


créer un forum



Annuaire referencement


Flux RSS


MSN 

Septembre 2017

LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 

Calendrier Calendrier

Menustrip Vbnet Visual Studio

Sam 16 Sep - 21:05 par Berly

Bonsoir le Forum  Very Happy

Je suis actuellement en construction  d'un logiciel pour les enfants en scolarité primaire.(Visual Studio Community 2017)

Je l'ai commencé et il fonctionne parfaitement a ce stade.

J'utilise Le contrôle MenuSrip.

Au commencement il est question d'afficher par catégorie tables de 1 a 10 .
Un Premier Bouton "Tables de Multiplications" Aucun événement 
Puis Ajouts …

[ Lecture complète ]
suppression d'un fichier txt en cours d'utilisation

Mar 5 Sep - 9:51 par La boc

Bonjour,

dans mon application j'ai un fichier txt qui est chargé dans un DataGridView en fonction du n° ID.

Quand je supprime un ID, je dois aussi supprimer ce fichier, quand je fait un delete ça marche bien, le fichier est bien supprimé du dossier mais quand je ferme l'application j'ai un message box:

"Violation de l’accès concurrentiel:
Delete command a effectué 0 des enregistrements …

[ Lecture complète ]
Boucle sur DataGridView

Jeu 31 Aoû - 8:25 par La boc

Bonjour as tous,

J'ai laissé tomber la BDD avec les tables pour mes factures, parce-que j'ai plus de 850 entrées à gérer et ça va être un peu trop lourd.

Je suis donc partis sur des DataGridView pour emplir mes factures, et au lieu d'enregistrer dans une BDD j'enregistre dans un fichier txt et je recharge les fchier en fonction du nom du client.

Jusque là pas de problème.

Je voudrais …

[ Lecture complète ]
Liers des tables dans une BDD

Lun 28 Aoû - 15:08 par La boc

Bonjour à tous,

Je sèche sur un problème visiblement simple, mais impossible de faire quelque chose qui fonctionne!

Voilà dans une base de données access j'ai deux tables, une table client et une table facture, je souhaiterais lier les ID des deux tables pour que quand je choisis un id client j'ai sa facture dans la table facture.

Je fais une application VBNET avec Visulal studio comunity …

[ Lecture complète ]
Application

Lun 15 Mai - 19:02 par Berly

Bonjour le forum

Souci dans une nouvelle application.

Total des énoncés =3

Ecriture de l'énoncé 1 dans un Textbox.

Je voulais créer plusieurs problèmes différents.
Dons pour cela j'ai créé 3 sub  Laughing.

Lors de l'événement clic sur le bouton créé pour visualiser le premier énoncé celui ci s'affiche correctement Very Happy .
Suite a cela l'utilisateur donne le résultat ,et un Msgbox …

[ Lecture complète ]
Obtenir le volume sonore enregistré par le micro

Sam 10 Sep - 13:29 par Nayl.VBcoder

Bonjour,

Je cherche à avoir le volume sonore de la pièce en temps réel, et l'afficher dans une ProgressBar.
Je ne vois pas comme plus décrire mon problème.

Merci de vos réponses.

Petits bidouillages pour ce faciliter La vie ,Astuces et codes pratique

Dim 11 Juin - 12:20 par Berly

Bonjour le Forum  Very Happy.

Lorsque j'écrivais dans mon code Console.Writeline ("Patati,Patata,......) ,j'ai d'abord utilisé le copié collé en changeant la valeur du texte .

Bon d'accord ,c'est bien mais ,ça me saoul un peu ,au fur et a mesure de mes apprentissages ,j'ai découvert les fonctions  Very Happy.

Maintenant je partage celle ci avec vous .

On est la sur un exemple de code en "Mode …

[ Lecture complète ]
Utilisation d'un objet son (Wav)

Jeu 18 Mai - 21:48 par Berly

Bonjour le forum 

Voila , je voudrais savoir si on peut créer un tableau d'objets son.
Difficile de trouver ce genre d'information .

Les sons  sont intégrés en ressources programme.

Merci  Very Happy
Code:
[Module Module1
    Dim son1 = New System.Media.SoundPlayer(My.Resources._0283)
    Dim son2 = New System.Media.SoundPlayer(My.Resources._0863)
    Dim son3 = New …


[ Lecture complète ]
Ressource Vb.net

Ven 5 Mai - 22:29 par Berly

Bonsoir le forum

Toujours a la recherche de ressources ,je partage avec vous une nouvelle ressource  Wink.

Bonne lecture .

https://vbnetpourtous.wordpress.com/2012/12/13/les-variables/


RESOLU problème d'aperçu/impression

Partagez
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu problème d'aperçu/impression

Message par grisan29 le Mer 21 Aoû - 3:32

bonjour a vous tous

dans ce http://programmer-en-vb.forumactif.org/t72-code-transcrit-avec-des-bugsrondement mené par Fhoest cheers  j'ai un autre souci que je n'avais pas vu avant, une fois fini ou pour voir le devis avant, je clique sur le bouton "aperçu" la procédure se déroule normalement et l'aperçu n'est pas identique a la feuille et l'impression tout autant
j'ai les articles de plus d'une ligne qui s'ajoutent (mal dans la feuille)mais qui s'ajoutent grâce a cette partie de code
Code:
With .Range("D" & lig, "H" & lig)
        .Font.Size = 14
        .Font.Name = "arial"
        .MergeCells = False
        .WrapText = True  'retour du texte à la ligne
        .EntireRow.AutoFit  'mettre la ligne en ajustement auto de la hauteur
        MaHauteur = .RowHeight  'voir quelle est la hauteur de la ligne une fois cet autofit fait
        .MergeCells = True  'refusionner

        '.VerticalAlignment = xlCenter
        .RowHeight = IIf(MaHauteur > 15, MaHauteur, 15)  'si la hauteur une fois autofit fait est inferieur à 15 je laisse 15 en minimum sinon hauteur de l'autofit (perso c'est la hauteur mini que je voulais
      End With
donc la ligne s'écrit bien en ajustement de hauteur disons et si le/les dernier mot est trop long il est mis a la ligne, mais le problème a l'aperçu c'est que la mise a la ligne est supprimée et la hauteur de ligne est conservé et c'est pareil pour l'impression
comme si la feuille était élargie pour l'impression mais en laissant les formats tel qu'ils sont
je rejoint le fichier sur lequel j'ai mis le bouton "apercu" lequel peux se trouver sur le classeur complet que j'ai envoyer sur le 1er post
essai articles 2v.xlsm
il faut la feuille "articles" sur c:\facturation
Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Mer 21 Aoû - 18:34

Bonjour,
dans le fichier joint tu a mis un exemple de texte long,
le souci c'est lorsque je fait un aperçu avant impression je ne vois rien d'anormale,
Peux tu faire une copie d'écran de ce qui se passe
Merci.

A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Mer 21 Aoû - 20:28

Bonsoir Fhoest
Voici l’aperçu de l’ajout d’article à grande longueur dans la feuille

http://pvb.comeze.com/Fichier_upload/grisan29/aper%c3%a7u%20ajout%20article.jpg
Et ci-dessous comment il devrait être écrit

http://pvb.comeze.com/Fichier_upload/grisan29/apercu%20inscription.jpg
Puis l’aperçu avant impression qui est comme l’impression

http://pvb.comeze.com/Fichier_upload/grisan29/apercu%20_impression1.jpg
j'espère que ces 3 aperçu expliqueront bien la situation

Merci a toi, cela vaudra une autre contribution

Pascal


Dernière édition par Fhoest ( Admin ) le Mer 21 Aoû - 21:27, édité 1 fois (Raison : mise en place des liens correctement avec balise lien url)
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Mer 21 Aoû - 22:43

Bonsoir,
je ne sais pas si ça va être suffisant,mais j'ai ajouté un select case de comparaison de longueur de chaine à ton code:
Voici une partie de code que tu as donné:
Code:
    .Columns(4).ColumnWidth = LargeurCol
      With .Range("D" & lig, "H" & lig)
        .Font.Size = 14
        .Font.Name = "arial"
        .MergeCells = False
        .WrapText = True  'retour du texte à la ligne
        .EntireRow.AutoFit  'mettre la ligne en ajustement auto de la hauteur
        MaHauteur = .RowHeight  'voir quelle est la hauteur de la ligne une fois cet autofit fait
       
        .MergeCells = True  'refusionner

        '.VerticalAlignment = xlCenter
        .RowHeight = IIf(MaHauteur > 15, MaHauteur, 15)  'si la hauteur une fois autofit fait est inferieur à 15 je laisse 15 en minimum sinon hauteur de l'autofit (perso c'est la hauteur mini que je voulais
     
      Select Case Len(TextBox3.Text)
      Case Is > 146 'pour 3 ligne dans la même cellule
      .RowHeight = .RowHeight * 3
      Case Is > 73 'pour 2 ligne dans la même cellule
      .RowHeight = .RowHeight * 2
      End Select
      End With
 
 End If
Petite remarque j'ai eut un bug sur la ligne Textbox20=me.....
dans le même code ajout click en bas
voici ce que j'ai changé:
Code:
 'ActiveWindow.ScrollRow = IIf((lig - NB_LIGNE_ARTICLE_FIGE) > Range("DOC_TITRE").Row, lig - NB_LIGNE_ARTICLE_FIGE, Range("DOC_TITRE").Row + 1)
 
  TextBox20 = Val(Me.TextBox17.Text) - Val(Me.TextBox21.Text)
  If TextBox20 < 0 Then TextBox20 = 0
  TextBox17 = TextBox20
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Jeu 22 Aoû - 7:14

bonjour Fhoest Cool 

je suis confus Embarassed désolé mais le fichier que je t'ai joint est la version 2v et celle où l'ajout d'articles fonctionne bien mais pas l'impression est la version v2 qui était dans la poubelle (erreur oufff sauvé)
dans cette version l'ajout d'article long sur "plusieurs lignes" fonctionne très bien et il n'y a que le problème d'impression soit cette vue avant impression qui est comme l’impression
http://pvb.comeze.com/Fichier_upload/grisan29/apercu%20inscription.jpg

et je te joint la bonne version qui elle a en plus les bons n° de  textbox

http://pvb.comeze.com/Fichier_upload/grisan29/essaiarticles%20v2.xlsm
quand je ne réfléchi pas plus loin que le bout de mon nez voila ce qui arrive envoi du mauvais fichier Embarassed Embarassed Crying or Very sad

Pascal
edit
si tu a mis un bouton pour envoi de fichier par "comeze" est ce que la partie "joindre un fichier est toujours utile???
autrement dans la rubrique "récuperer un fichier", comment puis je faire pour mettre tout sous "grisan29" car il y a Pascal29 et j'ai un fichier seul "essaiclientnewavec_tablo"

Merci

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Jeu 22 Aoû - 15:51

Bonjour,
grisan29 a écrit:
edit
si tu a mis un bouton pour envoi de fichier par "comeze" est ce que la partie "joindre un fichier est toujours utile???
Oui c'est toujours utile l'avantage c'est que nous avons deux endroits dédié au site pour le stockage de fichiers.
Chez Comeze serveur ou j'ai bossé pour mettre à disposition des dossiers personnalisés par membres avec leur propre choix de nom de dossier (de préférence Username)
Et Dans le cas ou nous avons des problèmes d'envoi de fichier avec l'un ou l'autre des services par exemple avec le bouton joindre un fichier en dessous de cette boite de dialogue (réponse),comme nous avons déjà rencontrer,nous avons toujours la possibilité de ne pas passer par cjoint et d'organiser nos fichier sur le serveur comeze.
autrement dans la rubrique "récuperer un fichier", comment puis je faire pour mettre tout sous "grisan29" car il y a Pascal29 et j'ai un fichier seul "essaiclientnewavec_tablo"
Pour le dossier Pascal29 je vais le supprimer et mettre le contenu de ce dossier dans grisan29
je suis le seul autorisé a faire ce genre de manipulation afin d'éviter des problèmes.

Pour ton problème d'aperçu qui ne fonctionne pas j'ai un problème c'est que je ne comprend pas ou il y a une erreur,
je sais, je ne suis pas balaise donc peux tu détailler d'avantage et si il le faut sur la copie écran mettre un encadrement sur paint ou autres programmes pourquoi pas.
Car sans comprendre exactement ce que tu as besoins,je ne peux faire plus.

A bientôt.


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Jeu 22 Aoû - 19:29

bonsoir Fhoest
merci pour tes réponses concernant les fichiers joints et la récupération de fichier
pour l'aperçu:
quand l'article "Disjoncteur XE unipolaire 32 A  (plaque induction,piano) obligatoire embrochable" se mets sur "2 lignes " sur la feuille avec "embrochable" sur la 2ème

pourquoi se met 'il sur une seule ligne dans l'aperçu et garde la hauteur de ligne soit rowheight à 36 ce qui a l'impression donne un écart entre les lignes, ce qui ne fait pas des plus esthétique sur la feuille

Normalement l'aperçu devrai être une copie conforme de la feuille

je viens de mettre un bouton pour créer un aperçu avec un code de base
Code:
Sheets("facture").PrintPreview
derrière un bouton et le résultat est le même, est ce un problème dû a windows8 où office 2010????

il faudrait que le code puisse garder les largeurs de colonnes( dit je une bêtise) Wink 

et tant que l'on parle d'impression quand je fais un devis d'une quinzaine de lignes cela rentre dans une seule feuille très bien, mais pourquoi l'impression imprime 2 feuilles et la 2ème est prête a recevoir des données, mais ne sert a rien sinon gaspiller du papier

j'espère avoir répondu a tes questionnement
Pascal
avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Jeu 22 Aoû - 19:56

re Fhoest
je te joint une copie d'une impression d'une feuille qui avait 3 articles identiques sur "3 lignes dans la feuille devis et le "Disjoncteur XE unipolaire 32 A  (plaque induction,piano) obligatoire embrochable" qui lui se trouve sur 1 ligne comme expliqué plus haut
http://pvb.comeze.com/Fichier_upload/grisan29/apercu%20impression-1.jpg
voila qui peux t'aider
normalement il n'y a pas d'écart entre ligne si l'aperçu était identique

Code:
je sais, je ne suis pas balaise





je n'ai jamais dit cela bien au contraire

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Jeu 22 Aoû - 20:38

Bonsoir,

je n'ai jamais dit cela bien au contraire
bien c'était juste pour l'humour,je fais ça par plaisir je ne cherche pas à être plus balaise qu'un autre,
j'en apprend tous les jours et j'en suis ravi.
Pour le problème je pense que c'est une question de différence entre la police numéroter et les pixels qui sont certainement retranscrit sur une feuille imprimer.
Il doit certainement avoir un moyen tout autre que celui de faire une impression comme cela,
je suis occupé de fouiner un peu partout pour trouver une solution,je pense à un export vers Word ou autres solutions
les explications sont claires je pense pouvoir avancé maintenant.
si l'on arrive à gérer l' hauteur de ligne cela sera déjà pas mal je pense.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Jeu 22 Aoû - 20:42

fHoest

sur quel bouton tu clique pour retranscrire une ligne sans mettre code comme je l'ai fait
je sent Sleep arrivé, avec les nerfs qui tombent étant donné que j'ai rempli mon cahier de charges de mes 3 semaines de conges, je vais même avoir un week end calme ouff, une bonne douche et a plus tard

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Jeu 22 Aoû - 21:48

Bonsoir,
essaie le code suivant:
Code:
' auteur ZYHACT DE DVD mais revisité plusieurs fois
Private Sub ajout_Click()
'*** bouton "ajout sur devis/facture"

  Dim lig As Integer, i As Integer
  Dim Sh As Worksheet, VPB As PageSetup
  Dim LargeurCol As Single, MaHauteur As Single, Lg_Origine As Single
  'calcul de la valeur de la variable lig
  Dim mot As String
  Dim ctrMt, ctrTVA7, ctrTVA19 As Variant
 
  Application.ScreenUpdating = False
  Application.EnableEvents = False
 
  If Me.TextBox21.Value = "" Then
  MsgBox "Entrer une quantité,svp"
  Exit Sub
  End If

 
  With wsFacture
    .Range("C18:M18,O18:P18").Borders(xlEdgeBottom).LineStyle = xlContinuous
    lig = .Range("B65536").End(xlUp)(2).Row
    If lig < 19 Then lig = 19

    'insertion d'une ligne
    '.Rows(lig + 1).Insert
    .Range("C" & lig - 1 & ":P" & lig - 1).Copy
    .Range("C" & lig).Insert xlShiftDown
    .Range("C" & lig & ":P" & lig).ClearContents
    .Range("C" & lig & ":H" & lig).HorizontalAlignment = xlLeft
   
    If Not Me.TextBox14 = "" Then
      .Rows(lig) = ""
      .Range("D" & lig) = TextBox14.Value
      Lg_Origine = .Columns(3).ColumnWidth + 10
      LargeurCol = .Columns(3).ColumnWidth + .Columns(4).ColumnWidth + .Columns(5).ColumnWidth + .Columns(6).ColumnWidth + _
                  .Columns(7).ColumnWidth + .Columns(8).ColumnWidth + 10
      .Columns(4).ColumnWidth = LargeurCol
      With .Range("D" & lig, "H" & lig)
        .Font.Size = 14
        .Font.Name = "arial"
        .MergeCells = False
        .WrapText = True  'retour du texte à la ligne
        .EntireRow.AutoFit  'mettre la ligne en ajustement auto de la hauteur
        MaHauteur = .RowHeight  'voir quelle est la hauteur de la ligne une fois cet autofit fait
        .MergeCells = True  'refusionner

        '.VerticalAlignment = xlCenter
        .RowHeight = IIf(MaHauteur > 15, MaHauteur, 15)  'si la hauteur une fois autofit fait est inferieur à 15 je laisse 15 en minimum sinon hauteur de l'autofit (perso c'est la hauteur mini que je voulais
      End With
    End If
    .Columns(4).ColumnWidth = Lg_Origine
    'recopie et mise en forme des données dans la feuille facturation
    .Cells(lig, "B") = Me.TextBox13
    .Cells(lig, "D") = Me.TextBox14
    .Cells(lig, "D").Font.Bold = False
    '.Cells(lig, "D").HorizontalAlignment = xlLeft
    '.Cells(lig, "D").VerticalAlignment = xlCenter
    .Range("D" & lig & ":H" & lig).Merge
    .Cells(lig, "I") = Me.TextBox15
    .Cells(lig, "I").NumberFormat = "#,##0.00€"
    .Cells(lig, "J") = Me.TextBox16
    .Cells(lig, "K") = Me.TextBox17
    .Cells(lig, "M") = Abs(Me.OptionButton2) + 1


    'calcul du montant HT
    If IsNumeric(.Cells(lig, "I")) And IsNumeric(.Cells(lig, "K")) Then
      .Cells(lig, "O").FormulaR1C1 = "=IF(RC[-2]=1,RC[-6]*RC[-4]*0.07,"""")"
      .Cells(lig, "O").NumberFormat = "#,##0.00€"
      .Cells(lig, "P").FormulaR1C1 = "=IF(RC[-3]=2,RC[-7]*RC[-5]*0.196,"""")"
      .Cells(lig, "P").NumberFormat = "#,##0.00€"
      .Cells(lig, "L").FormulaR1C1 = "=RC[-1]*RC[-3]"
      .Cells(lig, "L").NumberFormat = "#,##0.00€"
    End If
    'calcul du montant HT
    If IsNumeric(.Cells(lig, "I")) And IsNumeric(.Cells(lig, "K")) Then
        .Cells(lig, "L") = "=" & .Cells(lig, "I").AddressLocal & "*" & .Cells(lig, "K").AddressLocal
    Else
      .Cells(lig, "O") = ""
      .Cells(lig, "P") = ""
    End If
    'calcul des totaux montant HT, TVA5,5, TVA 19,6
    For i = lig To 1 Step -1
        If .Cells(i, "K") = "REPORT" Or .Cells(i, "K") = "Quantité" Then Exit For
    Next i
    .Cells(lig + 1, "L").Formula = "=SUM(" & .Range(.Cells(i + 1, "L"), .Cells(lig, "L")).AddressLocal & ")"
    .Cells(lig + 1, "L").NumberFormat = "#,##0.00€"
    .Cells(lig + 1, "O").Formula = "=SUM(" & .Range(.Cells(i + 1, "O"), .Cells(lig, "O")).AddressLocal & ")"
    .Cells(lig + 1, "O").NumberFormat = "#,##0.00€"
    .Cells(lig + 1, "P").Formula = "=SUM(" & .Range(.Cells(i + 1, "P"), .Cells(lig, "P")).AddressLocal & ")"
    .Cells(lig + 1, "P").NumberFormat = "#,##0.00€"
   
    If .Cells(lig + 1, "P") < 0.0001 Then .Cells(lig + 1, "P") = ""
    If .Cells(lig + 1, "O") < 0.0001 Then .Cells(lig + 1, "O") = ""
   
    'Remise a zéro du formulaire
    TextBox13.Value = ""
    TextBox14.Value = ""
    Me.TextBox19 = ""
    TextBox15.Value = ""
    TextBox21.Value = ""
    TextBox17.Value = ""
    TextBox20.Value = ""
    TextBox16.Value = ""
   

    'Formatage du tableau


    .Cells(lig, "C").Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Range(.Cells(lig, "I"), .Cells(lig, "P")).Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Range(.Cells(lig, "C"), .Cells(lig, "M")).Borders(xlEdgeTop).LineStyle = xlNone
    .Range(.Cells(lig, "O"), .Cells(lig, "P")).Borders(xlEdgeTop).LineStyle = xlNone
    .Range(.Cells(lig, "C"), .Cells(lig, "M")).Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Range(.Cells(lig, "O"), .Cells(lig, "P")).Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Range(.Cells(lig, "D"), .Cells(lig, "H")).Borders(xlInsideVertical).LineStyle = xlNone
    .Range(.Cells(lig, "I"), .Cells(lig, "Q")).Borders(xlInsideVertical).LineStyle = xlContinuous
    .Range(.Cells(lig, "O"), .Cells(lig, "P")).VerticalAlignment = xlCenter

    .Range(.Cells(lig, "I"), .Cells(lig, "M")).VerticalAlignment = xlCenter

    With .Range("C19:M" & lig & ",O19:P" & lig)
      .Font.Size = 14
      .Font.Name = "arial"
   
    End With
  End With
  wsFacture.Range("c19:M19").Borders(xlEdgeTop).LineStyle = xlContinuous
  wsFacture.Range("O19:P19").Borders(xlEdgeTop).LineStyle = xlContinuous

  'ActiveWindow.ScrollRow = IIf((lig - NB_LIGNE_ARTICLE_FIGE) > Range("DOC_TITRE").Row, lig - NB_LIGNE_ARTICLE_FIGE, Range("DOC_TITRE").Row + 1)
  TextBox20 = Val(Me.TextBox17.Text) - Val(Me.TextBox21.Text)
  If TextBox20 < 0 Then TextBox20 = 0
  TextBox17 = TextBox20
  'TextBox21 = Me.TextBox20.Text - Me.TextBox17.Text
  'If TextBox21 < 0 Then TextBox21 = 0
  'TextBox17 = TextBox21
 
 
  Application.ScreenUpdating = True
  Application.EnableEvents = True

End Sub
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Ven 23 Aoû - 8:28

bonjour fhoest Cool 


     MERCI  BEAUCOUP
Merci pour cette légère modification par l'ajout d'un + 10 au bout de la dernière colonne et le tour est joué, pas si sur

 car j'ai bien essayer de mettre + 10 tout seul et cela ne fonctionne pas
 tu coup comme les boutons pour ajouter une tranche où un texte sont des copies de ce code eh ben il ne modifie pas la largeur de la colonne même en recopiant le code et enlevant les lignes en trop scratch 

j'ai fait une recherche de ligne par ligne et rien vu je ne pense pas que ce soit les calculs de stock qui influe

pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Ven 23 Aoû - 16:10

Bonjour,
une autre solution consiste à travailler sur le code de l'aperçu en passant par la mise en page layout équivalent à la largeur d'impression puis de retravailler les hauteurs de cellules
voici le code:
Code:
Private Sub Aperçu_Click()
    'Sub Imprimer_Commande()
    Dim Nb As Integer, X As Long, DerLig As Long
    Dim No As Variant, Sh As Worksheet, T(), A As Integer
    Dim K As Integer, Hb As HPageBreak
    liste_boutons.Hide
    'Il faut faire attention avec cette commande "Application.ScreenUpdating = False"
    'Car elle perturbe le travail de Sh.HPageBreaks et cela fait planter la procédure.

    Application.ScreenUpdating = False
    Application.EnableEvents = False

    Set Sh = Worksheets(WS_FACTURE)
   
    With Sh
        .Activate
        '.Range("C:C").EntireRow.Hidden = False
        MasqueLignesEnteteVide False
        'Déterminer la dernière ligne de la feuille
        DerLig = .Cells.Find("*", LookIn:=xlValues, _
                SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
           
        'Si tu veux copier dans la feuille "commande" des données
        'inscris le code ici. Ces lignes seront ajoutées pour l'impression.
           
        '.../...
           
        'Si tu dois faire une réévaluation de la dernière ligne,
        'tu n'as qu'à enlever l'apostrophe de la ligne suivante.
           
        'DerLig = .Cells.Find("*", LookIn:=xlValues, _
                SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
           
        'S'assurer qu'il ne réside pas de ligne avec des bordures ou
        'autre format au-delà de la dernière ligne des données
        '.Range("C" & DerLig + 1, .Cells(.Rows.Count, 1)).EntireRow.Delete
           
        'Déterminer la hauteur des marges du haut et
        'du bas de la fenêtre
        With .PageSetup
            .LeftMargin = Application.CentimetersToPoints(1.5)
            .RightMargin = Application.CentimetersToPoints(1.5)
            .TopMargin = Application.CentimetersToPoints(2.5)
            .BottomMargin = Application.CentimetersToPoints(2.5)
            .HeaderMargin = Application.CentimetersToPoints(1)
            .FooterMargin = Application.CentimetersToPoints(1)
            .CenterHorizontally = True
            .CenterVertically = False
        End With
           
        Application.ScreenUpdating = True
        DoEvents
        'Afficher les sauts de page
        .DisplayPageBreaks = True
        'Nécessaire pour le hpagebreaks
        Application.GoTo .Range("C" & DerLig)
           
        'Déterminer la dernière ligne pour chaque saut horizontal
        'et les placer dans une variable tableau (T)
        If .HPageBreaks.Count > 0 Then
            For Each Hb In .HPageBreaks
                K = K + 1
                ReDim Preserve T(1 To K)
                T(K) = Hb.Location.Row - 1
            Next
        End If
           
        'Détermine le nombre de pages à imprimer
        If K = 0 Then
            Nb = 1
        ElseIf DerLig > T(K) Then
            Nb = UBound(T) + 1
        ElseIf DerLig = T(K) Then
            Nb = UBound(T)
        Else
            If DerLig > 11 Then
                Nb = 1
            Else
                Application.ScreenUpdating = True
                Application.EnableEvents = True
                MsgBox "Aucune donnée dans le tableau." & vbCrLf & _
                    "L'impression est annulée.", vbCrLf & _
                    vbCrLf & vbInformation + vbOKOnly, "Attention"
                Exit Sub
            End If
        End If
           
        X = MsgBox("Vous allez lancer une impression de " & Nb & " page(s)." & vbCrLf & vbCrLf & _
                "Désirez-vous affectuer une prévisualisation du document qui " & _
                "sera imprimé?", vbYesNoCancel + vbInformation, "Attention")
               
        'Annulation de l'impression
        If X = vbCancel Then
            .DisplayPageBreaks = False
            Application.EnableEvents = True
            Application.GoTo .Range("C1"), True
            Application.ScreenUpdating = True
            Exit Sub
        End If
       
        'MasqueLignesEnteteVide False
        ActiveWindow.View = xlPageLayoutView
        Dim c As Range
        For Each c In Range("C19:M" & DerLig - 8)
      Select Case Len(c.Text)
      Case Is > 146 'pour 3 ligne dans la même cellule
      c.RowHeight = 35
      Case Is > 73 'pour 2 ligne dans la même cellule
      c.RowHeight = 20
      End Select
     
        'Rows(c.Row & ":" & c.Row).EntireRow.AutoFit
        Next
        Application.ScreenUpdating = True
        DoEvents
       
        With .PageSetup
        .PrintArea = "C1:M" & DerLig  'Sh.UsedRange.Rows.Count
            '.PrintArea = ""
            'la plage de cellules à imprimer pour chaque page
            .PrintTitleRows = Sh.Range("C17:M18").Address
            '.FitToPagesTall = 1
            .FitToPagesWide = 1
            .Orientation = xlPortrait
            .PrintHeadings = False
            '.CenterHeader = "&14&""Arial,Gras""FACTURE SAV N° " & No & _
                        "pied de page au centre"
            '.CenterFooter = "&14&""SIRET : 000000000  -  NAF : 00000  -  RCS : 00000 -  N° TVA  :  FR00000000000" & Chr(10) & _
                                                "assurance décennale n°000000000 de chez untel"
       
        End With
       
        DessineBordureDeFinDePage True
       
        If X = vbYes Then
            .PrintPreview
        Else
            '.PrintOut 'à Activer après tes tests
        End If
       
        DessineBordureDeFinDePage False
    End With
   
    With Sh
        '.Range("C:C").EntireRow.Hidden = False
        .DisplayPageBreaks = False
        Application.GoTo .Range("A1"), True
    End With
    MasqueLignesEnteteVide True
   
    Application.ScreenUpdating = True
    ActiveWindow.View = xlNormalView
    Application.EnableEvents = True
    liste_boutons.Show

End Sub

Private Sub DessineBordureDeFinDePage(dessine As Boolean)
    Dim lastline As Long
    Dim Hb As HPageBreak
    With Worksheets(WS_FACTURE)
        If .HPageBreaks.Count > 0 Then
            For Each Hb In .HPageBreaks
                lastline = Hb.Location.Row - 1
                .Range(.Cells(lastline, "C"), .Cells(lastline, "M")).Borders(xlEdgeBottom).LineStyle = _
                    IIf(dessine, xlContinuous, xlNone)
            Next
        End If
    End With
    DoEvents
End Sub
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Ven 23 Aoû - 16:50

bonjour fhoest Cool 

Merci pour ce code qui
une fois l'aperçu fait a disons coupé la feuille a partir de la 20 ème c'est a dire repris le fractionnement existant et
 
au 2ème essai supprimer la fonction de figer les volets

 je crois que je préfère la version de modification du bouton ajouter sur feuille de l'autre post, sans te vexer j'espère, d'autant plus qu'elle permettra d'économiser du papier 1 lignes en moins a chaque article long parfait cheers pas vu comme cela avant, pourra tu me dire ce que tu a modifié hormis le +10 pour que le code ajouter fonctionne si bien
 
l'aperçu est très bien tant que le bouton fermer l'aperçu n'est pas actionné

Pascal
edit: ca y est j'ai compris ton astuce pour que le code ajout fonctionne, il faudra que je passe chez mon opticien faire contrôler ma vue car en fait il y a 2 +10 pas vu le 1er avant

Merci je vais voir si cela a résolu le problème d'mpression en même temps ce serai le top tongue 

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Ven 23 Aoû - 17:17

Re,
je ne suis pas vexé essaie ce code modifié:
Code:
  Private Sub Aperçu_Click()
        'Sub Imprimer_Commande()
        Dim Nb As Integer, X As Long, DerLig As Long
        Dim No As Variant, Sh As Worksheet, T(), A As Integer
        Dim K As Integer, Hb As HPageBreak
        liste_boutons.Hide
        'Il faut faire attention avec cette commande "Application.ScreenUpdating = False"
        'Car elle perturbe le travail de Sh.HPageBreaks et cela fait planter la procédure.

        Application.ScreenUpdating = False
        Application.EnableEvents = False

        Set Sh = Worksheets(WS_FACTURE)
       
        With Sh
            .Activate
            '.Range("C:C").EntireRow.Hidden = False
            MasqueLignesEnteteVide False
            'Déterminer la dernière ligne de la feuille
            DerLig = .Cells.Find("*", LookIn:=xlValues, _
                    SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
               
            'Si tu veux copier dans la feuille "commande" des données
            'inscris le code ici. Ces lignes seront ajoutées pour l'impression.
               
            '.../...
               
            'Si tu dois faire une réévaluation de la dernière ligne,
            'tu n'as qu'à enlever l'apostrophe de la ligne suivante.
               
            'DerLig = .Cells.Find("*", LookIn:=xlValues, _
                    SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
               
            'S'assurer qu'il ne réside pas de ligne avec des bordures ou
            'autre format au-delà de la dernière ligne des données
            '.Range("C" & DerLig + 1, .Cells(.Rows.Count, 1)).EntireRow.Delete
               
            'Déterminer la hauteur des marges du haut et
            'du bas de la fenêtre
            With .PageSetup
                .LeftMargin = Application.CentimetersToPoints(1.5)
                .RightMargin = Application.CentimetersToPoints(1.5)
                .TopMargin = Application.CentimetersToPoints(2.5)
                .BottomMargin = Application.CentimetersToPoints(2.5)
                .HeaderMargin = Application.CentimetersToPoints(1)
                .FooterMargin = Application.CentimetersToPoints(1)
                .CenterHorizontally = True
                .CenterVertically = False
            End With
               
            Application.ScreenUpdating = True
            DoEvents
            'Afficher les sauts de page
            .DisplayPageBreaks = True
            'Nécessaire pour le hpagebreaks
            Application.GoTo .Range("C" & DerLig)
               
            'Déterminer la dernière ligne pour chaque saut horizontal
            'et les placer dans une variable tableau (T)
            If .HPageBreaks.Count > 0 Then
                For Each Hb In .HPageBreaks
                    K = K + 1
                    ReDim Preserve T(1 To K)
                    T(K) = Hb.Location.Row - 1
                Next
            End If
               
            'Détermine le nombre de pages à imprimer
            If K = 0 Then
                Nb = 1
            ElseIf DerLig > T(K) Then
                Nb = UBound(T) + 1
            ElseIf DerLig = T(K) Then
                Nb = UBound(T)
            Else
                If DerLig > 11 Then
                    Nb = 1
                Else
                    Application.ScreenUpdating = True
                    Application.EnableEvents = True
                    MsgBox "Aucune donnée dans le tableau." & vbCrLf & _
                        "L'impression est annulée.", vbCrLf & _
                        vbCrLf & vbInformation + vbOKOnly, "Attention"
                    Exit Sub
                End If
            End If
               
            X = MsgBox("Vous allez lancer une impression de " & Nb & " page(s)." & vbCrLf & vbCrLf & _
                    "Désirez-vous affectuer une prévisualisation du document qui " & _
                    "sera imprimé?", vbYesNoCancel + vbInformation, "Attention")
                   
            'Annulation de l'impression
            If X = vbCancel Then
                .DisplayPageBreaks = False
                Application.EnableEvents = True
                Application.GoTo .Range("C1"), True
                Application.ScreenUpdating = True
                Exit Sub
            End If
           
            'MasqueLignesEnteteVide False
            ActiveWindow.View = xlPageLayoutView
            Dim c As Range
            For Each c In Range("C19:M" & DerLig - 8)
          Select Case Len(c.Text)
          Case Is > 146 'pour 3 ligne dans la même cellule
          c.RowHeight = 35
          Case Is > 73 'pour 2 ligne dans la même cellule
          c.RowHeight = 20
          End Select
         
            'Rows(c.Row & ":" & c.Row).EntireRow.AutoFit
            Next
            Application.ScreenUpdating = True
            DoEvents
           
            With .PageSetup
            .PrintArea = "C1:M" & DerLig  'Sh.UsedRange.Rows.Count
                '.PrintArea = ""
                'la plage de cellules à imprimer pour chaque page
                .PrintTitleRows = Sh.Range("C17:M18").Address
                '.FitToPagesTall = 1
                .FitToPagesWide = 1
                .Orientation = xlPortrait
                .PrintHeadings = False
                '.CenterHeader = "&14&""Arial,Gras""FACTURE SAV N° " & No & _
                            "pied de page au centre"
                '.CenterFooter = "&14&""SIRET : 000000000  -  NAF : 00000  -  RCS : 00000 -  N° TVA  :  FR00000000000" & Chr(10) & _
                                                    "assurance décennale n°000000000 de chez untel"
           
            End With
           
            DessineBordureDeFinDePage True
           
            If X = vbYes Then
                .PrintPreview
            Else
                '.PrintOut 'à Activer après tes tests
            End If
           
            DessineBordureDeFinDePage False
        End With
       
        With Sh
            '.Range("C:C").EntireRow.Hidden = False
            .DisplayPageBreaks = False
            Application.GoTo .Range("A1"), True
        End With
        MasqueLignesEnteteVide True
       
        Application.ScreenUpdating = True
        ActiveWindow.View = xlNormalView
        With ActiveWindow
        .SplitColumn = 0
        .SplitRow = 0
        End With
        Application.EnableEvents = True
        liste_boutons.Show

    End Sub
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Ven 23 Aoû - 20:23

bonjour Fhoest

merci pour ce code qui mieux que le précédent car il n'a fait qu'enlever les volets figés
et pareil que le précédent code l'appui sur aperçu fait faire une recherche dans toutes les feuilles ce qui doit etre aperçu puis se stabilise
et aussi comment peut'on faire pour avoir une écriture  réglable en sortie d'imprimante car actuellement légèrement petit

Pascal
édit: pourrais-tu mettre le fichier "essaiclientnew_tablo" dans grisan29 dans la récupération de fichier s'il te plait
Merci par avance
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Ven 23 Aoû - 23:22

Bonsoir,
pour le fichier c'est ok
pour la taille de texte je te propose de modifier les marges a cette endroit du même code précédent:
Code:
With .PageSetup
                    .LeftMargin = Application.CentimetersToPoints(0.5)
                    .RightMargin = Application.CentimetersToPoints(0.5)
                    .TopMargin = Application.CentimetersToPoints(1.5)
                    .BottomMargin = Application.CentimetersToPoints(1.5)
                    .HeaderMargin = Application.CentimetersToPoints(1)
                    .FooterMargin = Application.CentimetersToPoints(1)
                    .CenterHorizontally = True
                    .CenterVertically = False
                End With
ce qui augmentera automatiquement le pourcentage
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Sam 24 Aoû - 6:47

bonjour Fhoest

merci pour cette modification qui n'a pas résolu le problème

 j'en reviens a ta solution d'élargir les colonnes automatiquement, mais si je les élargie manuellement je pense que c'est pareil, je voudrais l'avis d'un expert en la matière

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Sam 24 Aoû - 7:52

Bonjour ,

ce que tu peux éventuellement faire c'est augmenter la taille de la police sur le code du bouton ajouter.
Ensuite dans ce code ci dessus aperçu tu peux insérer columns("D:D").width=ta valeur par exemple ta valeur =100
et oui tu as raison manuellement ça ne sert a rien.(excepter si tu enlèves les lignes de code qui gèrent les largeurs

après si c'est encore trop petit tu peux réduire les autres colonne pour augmenter la colonne D.
voilà ce que je peux te dire.

A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Sam 24 Aoû - 10:22

bonjour Fhoest
avec les + 10 associé avec le code aperçu ci dessous fonctionne bien une fois mis en commentaire les lignes de codes que tu a mis concernant les hauteurs de lignes dans la cellule

Code:
Private Sub Aperçu_Click()
        'Sub Imprimer_Commande()
        Dim Nb As Integer, X As Long, DerLig As Long
        Dim No As Variant, Sh As Worksheet, T(), A As Integer
        Dim K As Integer, Hb As HPageBreak
        liste_boutons.Hide
        'Il faut faire attention avec cette commande "Application.ScreenUpdating = False"
        'Car elle perturbe le travail de Sh.HPageBreaks et cela fait planter la procédure.
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        Set Sh = Worksheets(WS_FACTURE)
       
        With Sh
            .Activate
            '.Range("C:C").EntireRow.Hidden = False
            MasqueLignesEnteteVide False
            'Déterminer la dernière ligne de la feuille
            DerLig = .Cells.Find("*", LookIn:=xlValues, _
                    SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
               
            'Si tu veux copier dans la feuille "commande" des données
            'inscris le code ici. Ces lignes seront ajoutées pour l'impression.
               
            '.../...
               
            'Si tu dois faire une réévaluation de la dernière ligne,
            'tu n'as qu'à enlever l'apostrophe de la ligne suivante.
               
            'DerLig = .Cells.Find("*", LookIn:=xlValues, _
                    SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
               
            'S'assurer qu'il ne réside pas de ligne avec des bordures ou
            'autre format au-delà de la dernière ligne des données
            '.Range("C" & DerLig + 1, .Cells(.Rows.Count, 1)).EntireRow.Delete
               
            'Déterminer la hauteur des marges du haut et
            'du bas de la fenêtre
            With .PageSetup
                .LeftMargin = Application.CentimetersToPoints(1.5)
                .RightMargin = Application.CentimetersToPoints(1.5)
                .TopMargin = Application.CentimetersToPoints(2.5)
                .BottomMargin = Application.CentimetersToPoints(2.5)
                .HeaderMargin = Application.CentimetersToPoints(1)
                .FooterMargin = Application.CentimetersToPoints(1)
                .CenterHorizontally = True
                .CenterVertically = False
            End With
               
            Application.ScreenUpdating = True
            DoEvents
            'Afficher les sauts de page
            .DisplayPageBreaks = True
            'Nécessaire pour le hpagebreaks
            Application.GoTo .Range("C" & DerLig)
               
            'Déterminer la dernière ligne pour chaque saut horizontal
            'et les placer dans une variable tableau (T)
            If .HPageBreaks.Count > 0 Then
                For Each Hb In .HPageBreaks
                    K = K + 1
                    ReDim Preserve T(1 To K)
                    T(K) = Hb.Location.Row - 1
                Next
            End If
               
            'Détermine le nombre de pages à imprimer
            If K = 0 Then
                Nb = 1
            ElseIf DerLig > T(K) Then
                Nb = UBound(T) + 1
            ElseIf DerLig = T(K) Then
                Nb = UBound(T)
            Else
                If DerLig > 11 Then
                    Nb = 1
                Else
                    Application.ScreenUpdating = True
                    Application.EnableEvents = True
                    MsgBox "Aucune donnée dans le tableau." & vbCrLf & _
                        "L'impression est annulée.", vbCrLf & _
                        vbCrLf & vbInformation + vbOKOnly, "Attention"
                    Exit Sub
                End If
            End If
               
            X = MsgBox("Vous allez lancer une impression de " & Nb & " page(s)." & vbCrLf & vbCrLf & _
                    "Désirez-vous affectuer une prévisualisation du document qui " & _
                    "sera imprimé?", vbYesNoCancel + vbInformation, "Attention")
                   
            'Annulation de l'impression
            If X = vbCancel Then
                .DisplayPageBreaks = False
                Application.EnableEvents = True
                Application.GoTo .Range("C1"), True
                Application.ScreenUpdating = True
                Exit Sub
            End If
           
            'MasqueLignesEnteteVide False
           ' ActiveWindow.View = xlPageLayoutView
           ' Dim c As Range
            'For Each c In Range("C19:M" & DerLig - 8)
          'Select Case Len(c.Text)
         ' Case Is > 146 'pour 3 ligne dans la même cellule
         ' c.RowHeight = 35
         ' Case Is > 73 'pour 2 ligne dans la même cellule
         ' c.RowHeight = 20
         ' End Select
          
            'Rows(c.Row & ":" & c.Row).EntireRow.AutoFit
            'Next
            Application.ScreenUpdating = True
            DoEvents
           
            With .PageSetup
            .PrintArea = "C1:M" & DerLig  'Sh.UsedRange.Rows.Count
                 '.PrintArea = ""
                 'la plage de cellules à imprimer pour chaque page
                 .PrintTitleRows = Sh.Range("C17:M18").Address
                 '.FitToPagesTall = 1
                 .FitToPagesWide = 1
                 .Orientation = xlPortrait
                 .PrintHeadings = False
                 '.CenterHeader = "&14&""Arial,Gras""FACTURE SAV N° " & No & _
                             "pied de page au centre"
                 '.CenterFooter = "&14&""SIRET : 000000000   -   NAF : 00000   -   RCS : 00000 -   N° TVA   :  FR00000000000" & Chr(10) & _
                                                     "assurance décennale n°000000000 de chez untel"
           
            End With
           
            DessineBordureDeFinDePage True
           
            If X = vbYes Then
                .PrintPreview
            Else
                '.PrintOut 'à Activer après tes tests
            End If
           
            DessineBordureDeFinDePage False
        End With
       
        With Sh
            '.Range("C:C").EntireRow.Hidden = False
            .DisplayPageBreaks = False
            Application.GoTo .Range("A1"), True
        End With
        MasqueLignesEnteteVide True
       
        Application.ScreenUpdating = True
        ActiveWindow.View = xlNormalView
        With ActiveWindow
        .SplitColumn = 0
        .SplitRow = 0
        End With
        Application.EnableEvents = True
        liste_boutons.Show
    End Sub
Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Sam 24 Aoû - 10:36

Bonjour,

si tu trouves ton compte comme cela ,c'est impeccable.
A force de chercher à droite et à gauche ça va venir bon.

Félicitation pour ton passage (+50 messages) en step_one VBA deux étoiles.

A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Sam 24 Aoû - 11:22

bonjour Fhoest

citation:Félicitation pour ton passage (+50 messages) en step_one VBA deux étoiles
 que veux tu dire  par la

bon si maintenant ça reste bien avec l'aperçu et les + 10 il ne reste que mon problème d'impression qui au bout de 30 lignes sans compter les doubles où + il y a une 2ème feuille qui s'imprime pour rien c'est gaspillage

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Sam 24 Aoû - 11:24

Bonjour,
Pour le passage 50 messages voir attributions des rangs (forum)
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
grisan29
Modérateur
Modérateur

Localisation : BRETAGNE Nord 29
Messages : 766
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: RESOLU problème d'aperçu/impression

Message par grisan29 le Sam 24 Aoû - 16:23

bonjour

merci de m'avoir diriger vers où aller

Pascal
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1842
Date d'inscription : 24/05/2013
Age : 41

Résolu Re: RESOLU problème d'aperçu/impression

Message par AdminPVB le Sam 24 Aoû - 21:55

Bonsoir,
pour le problème des deux pages,
essai d'enlever le commentaire (')
de cette ligne
Code:
'.FitToPagesTall = 1
               
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study


Contenu sponsorisé

Résolu Re: RESOLU problème d'aperçu/impression

Message par Contenu sponsorisé


    La date/heure actuelle est Mer 20 Sep - 4:13