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 8 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 8 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 4880 messages dans 597 sujets

Nous avons 453 membres enregistrés

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

Recherche dans les forums

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


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 

Juillet 2017

LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Calendrier Calendrier

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 ]
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 ]
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/

Incorporation d' un Label Nombre de questions et un autre pour le Score,application scolaire

Ven 5 Mai - 21:23 par Berly

Bonsoir le forum

Je viens vers vous ,pour une petite aide.

Voila c'est une application scolaire Tables de multiplications Windows form.

Pour les connaisseurs ,vous comprendrez par le code la construction.

J'aimerai pouvoir incorporer a cette application deux choses .

Un label pour afficher un score.

Un autre label pour afficher le nombre de questions.

A savoir que j'ai inclus dans cette …

[ Lecture complète ]
archiver un classeur

Dim 30 Avr - 10:22 par medjsk

SALUT TOUT LE MONDE

d'abord je vous informe que je comprend pas vraiment VBA excel
et j'ai un problème dans mon fichier ci-joint
lorsque j’archive (bouton archiver) il m'affiche une erreur !!!
si vous pouvez m'aider.merci d'avance

mes salutations

Fichiers joints
Copie de FORMULAIRE-REQUETE.xlsm
Vous n'avez pas la permission de télécharger les fichiers joints.
(218 Ko) Téléchargé 8 fois
If / end if incomprehension

Mer 11 Jan - 14:18 par Silux

Bonjour,

j'ai fait des petits tuto pour certains collègues, hier encore tout fonctionnait et aujourd'hui plantage incompréhensible :

tout bête :

Sub total()

Cells(1, 5).Value = ""
Cells(1, 5).Value = Cells(1, 1).Value * Cells(1, 2).Value * Cells(1, 3).Value * Cells(1, 4).Value

resultat = Cells(1, 5).Value
Cells(2, 1).Value = resultat

        If Cells(1, 1).Value < 25 Then Cells(1, 1).Interior.Color = 255
      


[ Lecture complète ]
Enregistrement dans une base

Mar 1 Nov - 10:55 par La boc

Bonjour à tous et toutes, me revoilà pour une petite question.

J'ai utilisé il y a quelque années VB 2010 avec une base de données sans problème.

Je suis sous W10 64 bit avec Visual studio express 2015 et je tente de faire la même chose mais impossible d'enregistrer dans la base et je ne comprends pas où est mon erreur. Si une âme charitable pouvez éclairer ma lanterne ça serait …

[ Lecture complète ]

ouvrir un classeur dans un autre

Partagez
avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Sam 10 Aoû - 11:27

Rebonjour,

code a tester:
Code:
Function ClasseurOuvert(Nom As String) As Boolean  
Dim Wb As Workbook  

ClasseurOuvert = False  
For Each Wb In Application.Workbooks  
    If Wb.Name Like Nom & "*" Then  
        ClasseurOuvert = True
       Exit For
   End If  
Next Wb  
End Function
+ code du bouton bien lire les commentaires (pour les boucles)
Code:
Private Sub CommandButton6_Click() 'modifier article'
        'venant de phoenixordi excel application'
            Dim Classeursource As Workbook
            Dim CLasseurcible As Workbook
            Dim LaFeuille As Worksheet
            Dim i As Byte
 Me.Width = 915
        Set CLasseurcible = ThisWorkbook
        if classeurouvert("C:\Facturation-test\base\articles.xlsx")=true then
        Workbooks("articles.xlsx").Activate    
        'si il faut tester toutes les feuilles ôter les guillemets de la boucle'
 'For Each LaFeuille In Activeworkbook.Worksheets '
         If MsgBox("Copier la feuille " & LaFeuille.Name, vbYesNo) = vbYes Then _
         LaFeuille.Copy After:=CLasseurcible.Worksheets(CLasseurcible.Worksheets.Count)
         'Next LaFeuille'
 else:
 Set Classeursource = Workbooks.Open("C:\Facturation-test\base\articles.xlsx")
            Set CLasseurcible = ThisWorkbook
            'For Each LaFeuille In Classeursource.Worksheets'
                If MsgBox("Copier la feuille " & LaFeuille.Name, vbYesNo) = vbYes Then _
                   LaFeuille.Copy After:=CLasseurcible.Worksheets(CLasseurcible.Worksheets.Count)
            'Next LaFeuille'
        end if
   'Workbooks("articles.xlsx").save' 'ligne pour enregistrer si ok '       
           Classeursource.Close
            Set Classeursource = Nothing
            Set CLasseurcible = Nothing
       End Sub
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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Sam 10 Aoû - 20:43

bonjour Fhoest
excuse de l'absence, merci pour ce code qui est quasi parfait sauf qu'il y a un bug erreur91 variable objet où bloc with non définie et c'est dans cette partie
Code:
Set Classeursource = Workbooks.Open("C:\Facturation\base\articles.xlsx")
            Set CLasseurcible = ThisWorkbook
            'For Each LaFeuille In Classeursource.Worksheets'
              If MsgBox("Copier la feuille " & LaFeuille.Name, vbYesNo) = vbYes Then _
                  LaFeuille.Copy After:=CLasseurcible.Worksheets(CLasseurcible.Worksheets.Count)
            'Next LaFeuille'
        End If
que cette ligne
Code:
If MsgBox("Copier la feuille " & LaFeuille.Name, vbYesNo) = vbYes Then _
                  LaFeuille.Copy After:=CLasseurcible.Worksheets(CLasseurcible.Worksheets.Count)
fait défaut

Pascal
avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Sam 10 Aoû - 21:42

Bonsoir Grisan29,
oui après avoir regardé le code je comprend pourquoi,
le fait d'avoir enlever la boucle la variable Lafeuille ne correspond à plus rien,
il faut de se fait la définir par:
Code:
set Lafeuille=ActiveSheet
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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Dim 11 Aoû - 6:08

bonjour Fhoest
Merci c'est nettement mieux mais pourquoi c'est la feuille "facture " qui est ouverte sous "Feuil2" sur demande

Pascal
avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Dim 11 Aoû - 13:50

grisan29 a écrit:bonjour Fhoest
Merci c'est nettement mieux mais pourquoi c'est la feuille "facture " qui est ouverte sous "Feuil2" sur demande

Pascal
Bonjour Grisan29

La feuille Facture ou le classeur Facture car:
Ta feuille active ici nommé Lafeuille sera toujours égale à la feuille du classeur activé et de la feuille active
En traduisant par VBA:
le dernier code que j'ai donné.
Code:
set Lafeuille = Activesheet
Lafeuille = nom de ta variable objet worksheet = feuille de travail qui est instancié par cette ligne ci dessous
Code:
dim lafeuille as worksheet
Et Activesheet= feuille active donc du classeur actif
il faut donc bien activer avant cette ligne le bon classeur et la bonne feuille.

J' espère que tu comprends car ce n'est pas facile à expliquer


_________________
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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Dim 11 Aoû - 14:59

bonjour Fhoest
j'ai enfin réussi a ouvrir la feuille "articles " et non celle "facture", en décochant 2 lignes, dont je te joint le code, et après je te soumets un autre bug qui n'a plus rien a voir avec ce code, qui a mis le temps pour être rectifié mais ce n'est qu'un détail
Code:
Private Sub CommandButton6_Click()
Me.Width = 915
        'venant de phoenixordi excel application'
            Dim Classeursource As Workbook
            Dim CLasseurcible As Workbook
            Dim LaFeuille As Worksheet
            Dim i As Byte
 Me.Width = 915
        Set CLasseurcible = ThisWorkbook
              Set LaFeuille = ActiveSheet

        If ClasseurOuvert("C:\Facturation\base\articles.xlsx") = True Then
        Workbooks("articles.xlsx").Activate
        'si il faut tester toutes les feuilles ôter les guillemets de la boucle'
 'For Each LaFeuille In Activeworkbook.Worksheets '
         If MsgBox("Copier la feuille " & LaFeuille.Name, vbYesNo) = vbYes Then _
         LaFeuille.Copy After:=CLasseurcible.Worksheets(CLasseurcible.Worksheets.Count)
         'Next LaFeuille'
 Else:
 Set Classeursource = Workbooks.Open("C:\Facturation\base\articles.xlsx")
            Set CLasseurcible = ThisWorkbook
            For Each LaFeuille In Classeursource.Worksheets
                If MsgBox("Copier la feuille " & LaFeuille.Name, vbYesNo) = vbYes Then _
                   LaFeuille.Copy After:=CLasseurcible.Worksheets(CLasseurcible.Worksheets.Count)
            Next LaFeuille
        End If
   'Workbooks("articles.xlsx").save' 'ligne pour enregistrer si ok '
           Classeursource.Close
            Set Classeursource = Nothing
            Set CLasseurcible = Nothing
End Sub
donc le nouveau bug je vais faire une recherche et au cas où je reviens

Pascal
avatar
grisan29
Modérateur
Modérateur

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

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Dim 11 Aoû - 15:32

re Fhoest
maintenant c'est je pense un conflit avec le reste du code, donc pour ne pas avoir a modifier tous les codes , je vais essayer de mon coté en gardant l'ouverture de la feuille article a intégré entièrement le fichier source des codes suppression et modification
donc si j'arrive pour fermer la feuille "article" et enregistrer ce qui a été modifié
est ce que ceci peux faire l'affaire
Code:
Sheets("Articles").Delete
ou alors
Code:
Sheets("Articles").save & Delete
Pascal
avatar
grisan29
Modérateur
Modérateur

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

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Dim 11 Aoû - 20:49

bonsoir Fhoest Cool 
je vais clore le post car j'ai intégré le classeur souce dans la feuille article et cela fonctionne même si ce n'est pas tout a fait comme je le voulais, le tout est que cela fonctionne
je te remercie Cool beaucoup des efforts que tu a déployer pour essayer de résoudre cette équation cheers

Pascal
avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Dim 11 Aoû - 20:55

Bonsoir Grisan29,
désolé je n'ai pas suivi le fil cette après midi,ravi que tu ai trouvé ton bonheur.
j'ai bossé sur le dépôt de fichier pour donner la possibilité a l'utilisateur de créer son propre dossier,
Peux tu tester et me faire un retour.
Merci.
je dois vérifier les droits.

A bientôt sur d'autre fils...
PS: as tu vu qu 'il y avait maintenant une icone de dépot de fichier dans la fenêtre réponse du forum,
petit gif animé en dessous de souligné(barré).


_________________
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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Dim 11 Aoû - 21:21

bonsoir Fhoest

je vais te joindre un classeur a base de listview coloré une ligne sur 2
que dois je mettre pour le dossier de destination
http://pvb.comeze.com/Fichier_upload//listview(2).xlsm
Pascal
avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Dim 11 Aoû - 22:13

Bonsoir,
merci pour le fichier listview,
pour le dépôt de fichier j'ai modifié un peu ,parce que je constate par ta remarque que ce n'était pas très clair pour le nom de dossier.
Peu tu refaire un test, merci
Pour la listview je te donnerai un code ultra sympa ,tu verras c'est du top.
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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Dim 11 Aoû - 23:22

re Fhoest
je ne sais pas si tu a vu mais j'ai fait une contribution téléphonique
bon je vais réessayer avec la listview
http://pvb.comeze.com/Fichier_upload/pascal29/listview(2).xlsm
dans la page pour joindre les fichiers il y a un souci avec les écrits il y a les "é" qui sont remplacer
Pascal
avatar
grisan29
Modérateur
Modérateur

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

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Dim 11 Aoû - 23:24

re Fhoest
je ne sais pas si tu a vu mais j'ai fait une contribution téléphonique
bon je vais réessayer avec la listview
http://pvb.comeze.com/Fichier_upload/pascal29/listview(2).xlsm
dans la page pour joindre les fichiers il y a un souci avec les écrits il y a les "é" qui sont remplacer
Pascal


_________________
Pascal
http://vbaddict.altervista.org/Fichier_upload/grisan29/13.php

Comment mettre votre sujet en 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 !!!

avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Lun 12 Aoû - 10:38

Bonjour Grisan29

comme convenu voici le fichier:
listview_option
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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Lun 12 Aoû - 12:08

bonjour Fhoest

Merci pour la modif du classeur listview je me suis permis de rajouter une option au combobox
Code:
Private Sub combobox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  ComboBox1.DropDown
End Sub
ce qui permet de ne plus cliquer sur la flèche de déroulement

Pascal
avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Lun 12 Aoû - 12:14

Re,
sympa l'option je vais l' adopter
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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Lun 12 Aoû - 20:37

bonsoir Fhoest

comme on dit adopter c'est vendu lol! Wink 

pascal
avatar
grisan29
Modérateur
Modérateur

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

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Mar 13 Aoû - 19:48

bonjour Fhoest Cool 

je te renvoi ton fichier listview car j'y ai mis une feuille devis, mais le code n'est pas fini d'etre régler pour l'eenvoi dans la page , mais la n'est pas le souci
lors de l'inscription des articles la norme veux qu'ils soit inscrit l'un après l'autre mais ici non et je suis piégé les articles s'insère toujours en 1ère ligne en repoussant les autres
http://cjoint.com/?CHntVHQ8GwV
inscrit moi ou est l'erreur
bonne soirée
Pascal
avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Mer 14 Aoû - 10:27

Bonjour Grisan29
voici le code que je te propose:
Code:
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
 
  With Sheets("facture")
    '.Range("A14:AC14,AD14:AE14").Borders(xlEdgeBottom).LineStyle = xlContinuous
    lig = .Range("a13").End(xlDown).Row + 1
  ' If lig < 14 Then lig = 14

Rows(lig - 1 & ":" & lig - 1).Select
    Selection.Copy
    Rows(lig & ":" & lig).Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    'insertion d'une ligne
    '.Rows(lig + 1).Insert
    '.Range("A" & lig - 1 & ":AE" & lig - 1).Copy
    '.Range("A" & lig).Insert xlShiftDown
    '.Range("A" & lig & ":AE" & lig).ClearContents
    '.Range("A" & lig & ":S" & lig).HorizontalAlignment = xlLeft
   
    If Not Me.TextBox2 = "" Then
      .Rows(lig) = ""
      .Range("A" & lig) = TextBox2.Value
      Lg_Origine = .Columns(3).ColumnWidth
      LargeurCol = .Columns(3).ColumnWidth + .Columns(4).ColumnWidth + .Columns(5).ColumnWidth + .Columns(6).ColumnWidth + _
                  .Columns(7).ColumnWidth + .Columns(8).ColumnWidth
      .Columns(4).ColumnWidth = LargeurCol
      With .Range("A" & lig, "S" & lig)
        .Font.Size = 12
        .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
    DoEvents
    'recopie et mise en forme des données dans la feuille facturation
    'calcul du montant HT
    If IsNumeric(.Cells(lig, "I")) And IsNumeric(.Cells(lig, "K")) Then
      .Cells(lig, "AD").FormulaR1C1 = "=IF(RC[-2]=1,RC[-6]*RC[-4]*0.07,"""")"
      .Cells(lig, "AD").NumberFormat = "#,##0.00€"
      .Cells(lig, "AE").FormulaR1C1 = "=IF(RC[-3]=2,RC[-7]*RC[-5]*0.196,"""")"
      .Cells(lig, "AE").NumberFormat = "#,##0.00€"
      .Cells(lig, "Z").FormulaR1C1 = "=RC[-1]*RC[-3]"
      .Cells(lig, "Z").NumberFormat = "#,##0.00€"
    End If
    'calcul du montant HT
    If IsNumeric(.Cells(lig, "W")) And IsNumeric(.Cells(lig, "U")) Then
        .Cells(lig, "Z") = "=" & .Cells(lig, "W").AddressLocal & "*" & .Cells(lig, "U").AddressLocal
    Else
      .Cells(lig, "AD") = ""
      .Cells(lig, "AE") = ""
    End If
    'calcul des totaux montant HT, TVA5,5, TVA 19,6
    For i = lig To 1 Step -1
        If .Cells(i, "U") = "REPORT" Or .Cells(i, "U") = "Quantité" Then Exit For
    Next i
    .Cells(lig + 1, "Z").Formula = "=SUM(" & .Range(.Cells(i + 1, "Z"), .Cells(lig, "Z")).AddressLocal & ")"
    .Cells(lig + 1, "Z").NumberFormat = "#,##0.00€"
    .Cells(lig + 1, "AD").Formula = "=SUM(" & .Range(.Cells(i + 1, "AD"), .Cells(lig, "AD")).AddressLocal & ")"
    .Cells(lig + 1, "AD").NumberFormat = "#,##0.00€"
    .Cells(lig + 1, "AE").Formula = "=SUM(" & .Range(.Cells(i + 1, "AE"), .Cells(lig, "AE")).AddressLocal & ")"
    .Cells(lig + 1, "AE").NumberFormat = "#,##0.00€"
   
    If .Cells(lig + 1, "AE") < 0.0001 Then .Cells(lig + 1, "AE") = ""
    If .Cells(lig + 1, "AD") < 0.0001 Then .Cells(lig + 1, "AD") = ""
    .Cells(lig + 1, "Z") = ctrMt
    .Cells(lig + 1, "Z").NumberFormat = "#,##0.00€"
    .Cells(lig + 1, "AD") = ctrTVA7
    .Cells(lig + 1, "AD").NumberFormat = "#,##0.00€"
    .Cells(lig + 1, "AE") = ctrTVA19
    .Cells(lig + 1, "AE").NumberFormat = "#,##0.00€"
    'Remise a zéro du formulaire
    ' TextBox13.Value = ""
    'TextBox14.Value = ""
    'Me.TextBox19 = ""
    ' TextBox15.Value = ""
    'TextBox21.Value = ""
    'TextBox17.Value = ""
    'TextBox20.Value = ""
    'TextBox16.Value = ""
    'OptionButton3.Value = False

    'Formatage du tableau


    .Cells(lig, "A").Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Range(.Cells(lig, "T"), .Cells(lig, "AE")).Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Range(.Cells(lig, "C"), .Cells(lig, "AC")).Borders(xlEdgeTop).LineStyle = xlNone
    .Range(.Cells(lig, "AD"), .Cells(lig, "AE")).Borders(xlEdgeTop).LineStyle = xlNone
    .Range(.Cells(lig, "A"), .Cells(lig, "AC")).Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Range(.Cells(lig, "AD"), .Cells(lig, "AE")).Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Range(.Cells(lig, "A"), .Cells(lig, "S")).Borders(xlInsideVertical).LineStyle = xlNone
    .Range(.Cells(lig, "T"), .Cells(lig, "AF")).Borders(xlInsideVertical).LineStyle = xlContinuous
    .Range(.Cells(lig, "AD"), .Cells(lig, "AE")).VerticalAlignment = xlCenter
    '.Range(.Cells(lig, "A14:AE14")).Borders(xlEdgeTop).LineStyle = xlContinuous
    .Range(.Cells(lig, "I"), .Cells(lig, "AC")).VerticalAlignment = xlCenter

    With .Range("A14:AE" & lig) '& ",O19:P" & lig)
      .Font.Size = 12
      .Font.Name = "arial"
    End With
  End With

  '.Range("O19:P19").Borders(xlEdgeTop).LineStyle = xlContinuous

 
  'TextBox8 = Me.TextBox5.Text - Me.TextBox9.Text
  'If TextBox8 < 0 Then TextBox8 = 0
  'TextBox5 = TextBox8
 
 
  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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu complètement résolu

Message par grisan29 le Mer 14 Aoû - 12:31

Bonjour Fhoest
comme a ton habitude c'est parfait Cool
je faire une comparaison des 2 codes pour voir ou était l'erreur

merci et mes excuses j'aurai du ouvrir un autre post Sad  

Pascal
j'ai répondu trop vite car quand il y a déjà une ligne d'article d'écrite celaz vas très bien mais quand il pas de lignes d'écrite en dessous la 13 ème ca bug erreur 6 dépassement de capacité et ca mets
Code:
lig = .Range("A13").End(xlDown).Row + 1
en jaune et la souris indique lig est =0 en passant au dessus

Pascal
avatar
AdminPVB
Admin
Admin

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

Résolu Re: ouvrir un classeur dans un autre

Message par AdminPVB le Mer 14 Aoû - 23:18

Bonsoir,
il faut contourner le problème en conditionnant la recherche de la ligne
comme ceci:
Code:

' condition pour eviter problème sur lig
If .Range("a14").Value = "" Then
       lig = 14
       Else:
       lig = .Range("a13").End(xlDown).Row + 1
       End If
A+


Dernière édition par Fhoest ( Admin ) le Jeu 15 Aoû - 11:45, édité 1 fois


_________________
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 : 725
Date d'inscription : 25/07/2013
Age : 54

Résolu Re: ouvrir un classeur dans un autre

Message par grisan29 le Jeu 15 Aoû - 5:39

bonjour Fhoest Very Happy 

c'est exactement ce qu'il fallait faire Smile Merci

Pascal

Contenu sponsorisé

Résolu Re: ouvrir un classeur dans un autre

Message par Contenu sponsorisé


    La date/heure actuelle est Sam 22 Juil - 0:39