Communauté Fb
Follow us on twitter
Les vidéos du site
Le site complément

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 do not speak french,you are able to translate the whole topics with the flags just below 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 4 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 4 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 6055 messages dans 677 sujets

Nous avons 550 membres enregistrés

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

Recherche dans les forums

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


Derniers sujets

» Instants musique
par AdminPVB Lun 21 Mai - 9:32

» HUMOUR ET DERISION PAR IMAGES
par AdminPVB Lun 21 Mai - 8:37

» Incompatibilité avec Windows 10 64Bits
par TitiPointCom Jeu 17 Mai - 21:52

» Mind Mapping // * cartographie de l'esprit *
par AdminPVB Dim 13 Mai - 20:43

» Problème d'affichage nb heures >24
par TitiPointCom Dim 13 Mai - 15:42

» Débuter en vba
par IFFIC Ven 11 Mai - 15:31

» Problème d'enregistrement en pdf
par Berly Jeu 10 Mai - 22:32

» Nom d'un USF en variable?
par AdminPVB Mar 8 Mai - 19:01

» ASTUCES UTILES
par IFFIC Dim 6 Mai - 18:25

» Enregistrer sous
par danpom302 Jeu 3 Mai - 22:39

» Activer un classeur déjà ouvert
par danpom302 Jeu 3 Mai - 22:38

» Enregistrer sous un autre nom.
par IFFIC Dim 29 Avr - 18:43

» Affichage erroné de la date
par danpom302 Jeu 26 Avr - 16:19

» ESPRIT FORUM
par IFFIC Lun 23 Avr - 19:11

» Petit souci d'affichage de valeurs(Tableau) valeurs saisies au clavier
par Berly Mar 17 Avr - 16:49

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 

Mai 2018

LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   

Calendrier Calendrier

Petit souci d'affichage de valeurs(Tableau) valeurs saisies au clavier

Sam 14 Avr - 21:19 par Berly

Bonsoir a tous  Very Happy.

Voila j'ai un petit souci de méthode .

Je poste le code ,Ne vous souciez pas des zones de commentaire.

A la fin le nombre d éléments du tableau correspond bien au nombres de valeurs saisies par l'utilisateur .

Je ne trouve pas la méthode pour afficher les valeurs .....bon c'est vrai que en ce moment je bricole  Rolling Eyes.

Merci pour vos réponses  Wink.

Code:
[Imports …


[ Lecture complète ]
Traduction D'algorithmes

Mer 7 Mar - 22:28 par Berly

Bonsoir A toutes et Tous .

J'ouvre ce Post en vue d'une éventuelle collaboration de membres désireux de collaborer a l'évolution de tous.

Le but de ce forum ,consisterai a rechercher des Algorithmes en "Pseudo-code", sans restriction de ressources en appliquant le principe du copié collé .(Sans omettre de citer les sources de provenance  Very Happy,Livres ,exercices scolaires Very Happy ,etc.....)

La …

[ Lecture complète ]
SOS traduction

Dim 4 Mar - 9:11 par e.sainturlo

Bonjour à tous,

Je souhaite comprendre ce qui se cache derrière cette longue suite d'instructions imbriquées les unes dans les autres:

numero2 = Conversions.ToInteger(Operators.AddObject(numero2,Operators.ModObject(Operators.MultiplyObject(NewLateBinding.LateIndexGet(MPMP, new object[] {numero1,numero3}, null), Strings.Asc(MCMC.Substring(numero3, 1)) - 65), 26)));

Quelqu'un saurait-il …

[ Lecture complète ]
Et si on parlait des fichiers.txt et fichiers.csv

Ven 2 Fév - 20:51 par Berly

Bonsoir le forum  Very Happy

Je viens vers vous pour étudier en vbnet les fichiers.

Actuellement j'étudie dans une autre langage ces fichiers.



https://fr.wikipedia.org/wiki/Comma-separated_values.


Ces bases de données sont intéressantes a exploiter ,pour diverses applications dans la vie de tous les jours.


1° Création de fichiers avec extension ou pas.Y a t'il une bibliothèque native en …

[ Lecture complète ]
VB 2005 express

Mar 6 Fév - 17:02 par christian80.1951

Bonjours a tous,
J'utilise vb 2005 express.
dans la form1.vb[design] je créer une listebox .
Lorsque je veux la positionner dans cette form , lors de son déplacement avec la souris ma listbox devient invisible,
ce qui rend son positionnement mal-aisé.
Ce phénomène se produit aléatoirement ! ( certainement une mauvaise manip ) et cet état persiste dans le projet.
J'espère être compréhensible.


[ Lecture complète ]
Création d'un raccourci sur le Bureau pour son Application

Mar 10 Oct - 18:49 par IFFIC

Bonsoir à tous, ou Bonjour s'il est plus tôt qu'à cette heure,
Je ne suis pas passé bien souvent par ici, car j'étais pris sur un gros projet depuis voici un peu plus d'un an.

Au bénéfice de bidouilles trouvées dans mes travaux, je vous livre celle-ci:
Car il est bien confortable de n'avoir pas à fouiller dans l'arborescence d'un disque externe ou une clé USB, voire en ayant changé de …

[ Lecture complète ]
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 ]
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 ]

Problème avec un code

Partagez
avatar
danpom302
Step_Three_VBA
Step_Three_VBA

Localisation : Québec
Messages : 426
Date d'inscription : 23/09/2013
Age : 67

Résolu Problème avec un code

Message par danpom302 le Mer 17 Déc - 1:22

Bonjour à tous,

J'ai un problème avec un code. Je vais donc joindre un fichier pour la compréhension.

Code:
' Info facture vers registre factures

' Déterminer la ligne pour coller les données
Dim dernière_ligne_vide As Long
    dernière_ligne_vide = Sheets("Registre factures").Range("B65000").End(xlUp).Row

    Application.ScreenUpdating = False

For i = 0 To 8
    Sheets("Registre factures").Unprotect "lune654"
    Sheets("Registre factures").Cells(dernière_ligne_vide + 1, 2 + i).Value = Sheets("Facture").Cells(24, 17 + i).Value
Next

Le problème se situ lorsque je colle les infos (Sheets("Registre factures").Cells(dernière_ligne_vide + 1, 2 + i).Value =) provenant de Sheets("Facture").Cells(24, 17 + i).Value

Mon numéro de facture devrait être à titre d'exemple, 14-0001 tel qu'indiqué sur la facture mais le numéro indiqué dans le registre est toujours 1 unité de plus soit ici, 14-0002 et la facture imprimée affiche également le numéro 14-0002. On dirait qu'il y a une commande à quelque part dans le code qui additionne!

Voici mon fichier.
http://pvb.comeze.com/Fichier_upload/danpom302/Fiche_client_Facture_V4.xlsm

Merci pour votre aide,

Dan
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 2031
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: Problème avec un code

Message par AdminPVB le Mer 17 Déc - 7:54

Bonjour Dan,

Lorsque que l'on analyse ce que fait le code et ton fichier on s'aperçoit que les formules écrites en dur dans la feuille de classeur fausse le résultat.

Ce que tu cherche à faire c'est récupérer ta ligne 24 puis l'exporter vers la feuille "Registre facture",le seul souci qui se pose c'est que dès lors que tu écris une ligne supplémentaire dans "Registre" ta cellule P1 change et fausse le résultat en y ajoutant un de plus à ta cellule R24 de ta feuille Facture,
donc tu obtiens le résultat erroné.

Ce qu'il faut faire préalablement dans ton cas c'est mettre un tableau, puis y intégrer les valeurs de chaque cellules puis de le transposer sur ta cellule cible de ta feuille registre.

Code:
Dim v, w
With Sheets("Registre factures")
.Unprotect "test"
   v = Sheets("Facture").Range(Cells(24, 17), Cells(24, 26)).Value
   w = Application.Transpose(v)
   .Range(.Cells(dernière_ligne_vide + 1, 2), .Cells(dernière_ligne_vide + 1, 10)).Value = Application.Transpose(w)
End With
A mettre à la place de la boucle For i = 1 to 8

Ou encore plus simple sans tableau:
directement comme ça:
Code:
Sheets("Registre factures").Range(.Cells(dernière_ligne_vide + 1, 2), .Cells(dernière_ligne_vide + 1, 10)).Value = Sheets("Facture").Range(Cells(24, 17), Cells(24, 26)).Value

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
danpom302
Step_Three_VBA
Step_Three_VBA

Localisation : Québec
Messages : 426
Date d'inscription : 23/09/2013
Age : 67

Résolu Re: Problème avec un code

Message par danpom302 le Mer 17 Déc - 17:47

Bonjour Fhoest,

Merci pour ta réponse. Voici ce que j'ai fait.

J'ai rajouté un code permettant de copier les données des cellules Q24:Y24 de la facture et de les coller en utilisant coller les valeurs en Q25:Y25.

J'ai modifié le code permettant de transférer les données des cellules Q24:Y24 afin que ce soit les données des cellules  Q25:Y25.

J'ai déplacé le code permettant de filtrer et d'imprimer la facture avant de transférer les données vers le "Registre facture".

Voici mon nouveau code :

Code:
Sub Courriel()
'K3 (Facture à envoyer)
'K4 (No de la facture)
'D14 (Adresse courriel du client)
'D8 (nom de la compagnie)


' Déprotéger, filtrer et imprimer la facture
    Sheets("Facture").Select
    ActiveSheet.Unprotect "test"
    Range("$O$18:$O$352").AutoFilter Field:=1, Criteria1:="<>"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    Range("A1").Select

Dim MonFichier As String
Dim MonAdresse As String
Dim mon_pdf As String
    mon_pdf = [K3] & " " & [K4] & "_" & [D8] & ")"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ActiveWorkbook.Path & "\" & mon_pdf & " .pdf", Quality:=xlQualityStandard
    MonFichier = ActiveWorkbook.Path & "\" & mon_pdf & " .pdf"
    MonAdresse = Range("D14").Text
Call FichierPDF(MonAdresse, MonFichier)
   
End Sub
Sub FichierPDF(AdresseMail, Fichier)
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
Dim control_app
Set control_app = GetObject(, "Outlook.Application")

If Err.Number = 0 Then
  With OutMail
  .To = AdresseMail
  .Subject = Range("D14").Text & " - " & Range("D8").Text
  .HTMLBody = "<p>Bonjour,</p>" & "<p>Ci-joint la facture" & Range("K4").Text & " concernant une ou plusieurs livraisons effectuées à votre demande. " & "<br>" & "<p>Cordialement," & "<br>" & "<p> Moi."
  .Attachments.Add Fichier
  .Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Else
    Err.Clear
    Application.ActivateMicrosoftApp (xlMicrosoftMail)
With OutMail
    .To = AdresseMail
    .Subject = Range("D14").Text & " - " & Range("D8").Text
    .HTMLBody = "<p>Bonjour,</p>" & "<p>Ci-joint la facture" & Range("K4").Text & " concernant une ou plusieurs livraisons effectuées à votre demande. " & "<br>" & "<p>Cordialement," & "<br>" & "<p> Moi."
    .Attachments.Add Fichier
    .Send
End With
Set OutMail = Nothing
End If
    Application.ActivateMicrosoftApp (xlMicrosoftMail)

' Ne pas raffraichir l'écran
    Application.ScreenUpdating = False

' Coller valeurs cellules Q24:Y24 vers Q25:Y25
    Sheets("Facture").Select
    Range("Q24:Y24").Select
    Selection.Copy
    Range("Q25").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

' Info facture vers registre factures
' Déterminer la ligne pour coller les données

Dim dernière_ligne_vide As Long
    dernière_ligne_vide = Sheets("Registre factures").Range("B65000").End(xlUp).Row

' Ne pas raffraichir l'écran
    Application.ScreenUpdating = False

For i = 0 To 8
    Sheets("Registre factures").Unprotect "test"
    Sheets("Registre factures").Cells(dernière_ligne_vide + 1, 2 + i).Value = Sheets("Facture").Cells(25, 17 + i).Value
Next

' Ne pas raffraichir l'écran
   
    Application.ScreenUpdating = False

    ' Trier les données par client en ordre croissant

    Sheets("Registre factures").Select
    ActiveWorkbook.Worksheets("Registre factures").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Registre factures").Sort.SortFields.Add Key:=Range( _
    "C2:C1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal

With ActiveWorkbook.Worksheets("Registre factures").Sort
    .SetRange Range("A1:K1000")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    Range("A1").Select

End With
   
' Filtrer la feuille pour afficher toutes les lignes
    Sheets("Facture").Select
    ActiveSheet.Range("$O$18:$O$352").AutoFilter Field:=1
 
' Effacer les données du formulaire facture
    Range("P9,Q25:Y25,C18:L352").Select
    Range("L352").Activate
    Selection.ClearContents
    Range("A1").Select
   
'Protéger la feuille
    ActiveSheet.Protect "test", DrawingObjects:=True, Contents:=True, Scenarios:= _
    True, AllowFormattingCells:=False, AllowSorting:=True, AllowFiltering:=True
    Range("A1").Select

' Ne pas raffraichir l'écran
   
    Application.ScreenUpdating = False
     
    ' Enregistrer le classeur
   
    ActiveWorkbook.Save

End Sub

Le seul problème que j'ai à résoudre est, qu'à chaque envoie de la facture par courriel, Outlook s'ouvre à nouveau. Donc après l'envoie de 10 factures par courriel, j'ai 10 Outlook d'ouvert dans la barre des tâches.

Tu m'as déjà répondu à ce sujet. Je vais donc chercher dans le forum.

Voici l'autre code permettant d'imprimer une copie de la facture pour envoi par la poste et une pour le dossier papier.

Code:
Sub PDF_Imprimer()
'K3 (Facture à envoyer)
'K4 (No de la facture)
'D14 (Adresse courriel du client)
'D8 (nom de la compagnie)

'Déprotéger la feuille Facture
    ActiveSheet.Unprotect "test"
   
' Filtrer la facture pour afficher seulement les lignes ayant des données
    ActiveSheet.Range("$O$18:$O$352").AutoFilter Field:=1, Criteria1:="<>"

' Préparer le document PDF
Dim MonFichier As String
Dim MonAdresse As String
Dim mon_pdf As String
    mon_pdf = [K3] & " " & [K4] & "_" & [D8] & ")"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ActiveWorkbook.Path & "\" & mon_pdf & " .pdf", Quality:=xlQualityStandard
    MonFichier = ActiveWorkbook.Path & "\" & mon_pdf & " .pdf"
    MonAdresse = Range("D14").Text
   
' Coller valeurs cellules Q24:Y24 vers Q25:Y25 puis imprimer la facture
    Sheets("Facture").Select
    Range("Q24:Y24").Select
    Selection.Copy
    Range("Q25").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SelectedSheets.PrintOut Copies:=2
    Range("A1").Select
   
' Info facture vers registre factures

' Déterminer la ligne pour coller les données

Dim dernière_ligne_vide As Long
    dernière_ligne_vide = Sheets("Registre factures").Range("B65000").End(xlUp).Row

' Ne pas raffraichir l'écran
    Application.ScreenUpdating = False

For i = 0 To 8
    Sheets("Registre factures").Unprotect "lune654"
    Sheets("Registre factures").Cells(dernière_ligne_vide + 1, 2 + i).Value = Sheets("Facture").Cells(25, 17 + i).Value
Next

' Ne pas raffraichir l'écran
   
    Application.ScreenUpdating = False

    ' Trier les données par client en ordre croissant

    Sheets("Registre factures").Select
    ActiveWorkbook.Worksheets("Registre factures").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Registre factures").Sort.SortFields.Add Key:=Range( _
    "C2:C1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal

With ActiveWorkbook.Worksheets("Registre factures").Sort
    .SetRange Range("A1:K1000")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    Range("A1").Select

End With
   
' Filtrer la feuille pour afficher toutes les lignes
    Sheets("Facture").Select
    ActiveSheet.Range("$O$18:$O$352").AutoFilter Field:=1
 
' Effacer les données du formulaire facture
    Range("P9,Q25:Y25,C18:L352").Select
    Range("L352").Activate
    Selection.ClearContents
    Range("A1").Select
   
'Protéger la feuille
    ActiveSheet.Protect "test", DrawingObjects:=True, Contents:=True, Scenarios:= _
    True, AllowFormattingCells:=False, AllowSorting:=True, AllowFiltering:=True
    Range("A1").Select

' Ne pas raffraichir l'écran
   
    Application.ScreenUpdating = False
     
    ' Enregistrer le classeur
   
    ActiveWorkbook.Save

End Sub




Merci,

Dan


Contenu sponsorisé

Résolu Re: Problème avec un code

Message par Contenu sponsorisé


    La date/heure actuelle est Mer 23 Mai - 11:09