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 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 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 5391 messages dans 635 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.


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 

Novembre 2017

LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   

Calendrier Calendrier

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

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 ]

Problème avec un code proposé. Ajouter

Partagez
avatar
danpom302
Step_Three_VBA
Step_Three_VBA

Localisation : Québec
Messages : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Problème avec un code proposé. Ajouter

Message par danpom302 le Ven 28 Nov - 18:15

Bonjour Fhoest et le forum,


J'ai un problème avec le code suivant :

Code:
'IndexList = ligne à modifier
'colonne est un repère pour la colonne de ressource
Dim c As Control
Private Sub CommandButton1_Click()
Dim DerColonne As Long
Select Case CommandButton1.Caption
Case Is = "Modifier"
With Sheets("Registre clients")
.Unprotect "test"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "test"
End With
Case Is = "Ajouter"
With Sheets("Registre clients")
.Unprotect "test"
DerColonne = .Range("A" & IndexList).End(xlToRight).Column + 1
If DerColonne < 11 Then DerColonne = 11
'remplacer la dernière colonne > si plus de 5 ressources ci-dessous
If DerColonne > 35 Then MsgBox "Impossible d'ajouter cette ressource supplémentaire pour ce client", vbInformation: Exit Sub
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "test"
End With
Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "test"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Delete
Next
.Protect "test"
End With
End Select
Formulaire.CbxNom = ""
Me.Hide
End Sub

Private Sub UserForm_Initialize()
Dim i As Byte
RessourceInfo = Array(Formulaire.ListView1.SelectedItem, _
Formulaire.ListView1.SelectedItem.ListSubItems(1), _
Formulaire.ListView1.SelectedItem.ListSubItems(2), _
Formulaire.ListView1.SelectedItem.ListSubItems(3), _
Formulaire.ListView1.SelectedItem.ListSubItems(4), _
Formulaire.ListView1.SelectedItem.ListSubItems(5), _
Formulaire.ListView1.SelectedItem.ListSubItems(6))
Dim c As Control
For Each c In Me.Controls
If TypeName(c) = "Frame" Then i = i + 1: c.Caption = ColList(i): Controls("TextBox" & i).Tag = i: Controls("TextBox" & i).Text = RessourceInfo(i):
Next
End Sub


Ce code m'a été proposé par toi et est utilisé avec le formulaire Ressource servant à ajouter un client ainsi que de modifier, ajouter ou supprimer un ou des contacts.

Lorsque j'ajoute un nouveau client, le tout fonctionne bien. Lorsque je veux ajouter un 1er contact, le tout fonctionne bien, Lorsque je veux ajouter un 2e contact, c'est le 1er contact qui se modifie. Impossible d'ajouter un 2e contact.


S.v.p., as-tu une idée pour corriger le tout? Je n'y parvient pas. Je suis désolé de n'avoir pas tout vérifié avant de cocher "Résolu". Sad


Merci de me revenir avec une solution,


Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Ven 28 Nov - 18:36

Bonjour,
est ce que lors du premier ajout toute les colonnes sont remplies ?
si oui modifie la ligne suivante:
Code:
DerColonne
Code:
DerColonne = .Range("A" & IndexList).End(xlToRight).Column + 1
 



par


Code:
DerColonne = .Range("j" & IndexList).End(xlToRight).Column + 1





A tester
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 : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Ven 28 Nov - 20:07

Bonjour Fhoest,

Malheureusement, ça n'a pas bien fonctionné mais le bouton Supprimé lui fonctionne bien.

Les informations du 2e contact se sont placées à partir du champ Téléphone du 1er contact  ligne C1, et ainsi de suite jusqu'au numéro de cellulaire placé dans le champ Courriel. L'adresse de courriel du 2e contact , s'est placée, quand à elle, dans le champ Contact du 2e contact ligne C2 du formulaire Fiche client.

J'ai remplacé la lettre J tel que recommandé par la lettre O, Les informations du 2e contact se sont placées dans les bons champs ligne C3. J'ai essayé la lettre H et c'était pas beau à voir. Laughing

Somme toute, je n'ai toujours pas de solution,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Ven 28 Nov - 22:49

Bonsoir,
je regarderai comme il le faut demain,en faisant des tests pour te donner une solution
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
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Sam 29 Nov - 8:55

Bonjour,
je pense que ce qui pose problème c'est de n'avoir rien dans la colonne "J",car le code est correct.
il faudrait mettre une valeur par défaut dans cette cellule, ou  alors ajouter un champ dans le formulaire de remplissage.
Que souhaites tu ?
Essai de mettre une valeur dans la cellule de cette colonne et re-test pour voir si ce que je dis est correct.
@+


_________________
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 : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Sam 29 Nov - 14:50

Bonjour Fhoest,

J'ai essayé en entrant la condition de paiement dans le client posant problème et j'ai entré une ressource sauf que celle-ci s'est placée en C5 parce que j'avais oublié de remplacer la lettre O que j'avais entrée lors de mon dernier test hier par la lettre J et ce, dans le code suivant:

Code:
DerColonne = .Range("j" & IndexList).End(xlToRight).Column + 1

Le contact s'est donc placé en C5. Je l'ai supprimé mais maintenant, je ne peux plus ajouter de contact.
J'ai supprimé de la feuille Registre client, le client posant problème. J'ai ensuite entré le même client à l'aide du formulaire "Fiche client" puis j'a essayé d'enter une ressource mais en vain. Je reçois toujours le message suivant :

Impossible d'ajouter cette ressource supplémentaire pour ce client

J'ai fermé le fichier puis je l'ai ouvert à nouveau mais j'obtiens toujours le même message. Bizarre...

Ce serait peut être mieux d'utiliser une autre colonne car la personne qui utilise ce fichier n'entre pas toujours une condition de paiement dans ce champ. Par contre, il entre toujours le nom d'un client. Donc, puis-je modifier le code comme ceci?

Code:
DerColonne = .Range("d" & IndexList).End(xlToRight).Column + 7


Merci pour ton aide,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Sam 29 Nov - 16:14

Rebonjour,
il faut le premier code avec dercolonne=Range("A" & ...)
ensuite il faut impérativement que la cellule J de la ligne concernée ne soit pas vide.
normalement de cette manière il ne doit pas y avoir de problème.
si toutefois il y en encore un donne le fichier avec la feuille qui pose problème, donne la ligne concernée et l'action exact que tu fais,
mais pour moi si tu fais ce que j'écris en première et deuxième ligne de ce message cela doit fonctionné
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 : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Sam 29 Nov - 23:38

Bonjour Fhoest,

Voici le code que j'utilise pour "Ressource":

Code:
'IndexList = ligne à modifier
'colonne est un repère pour la colonne de ressource
Dim c As Control
Private Sub CommandButton1_Click()
Dim DerColonne As Long
Select Case CommandButton1.Caption
Case Is = "Modifier"
With Sheets("Registre clients")
.Unprotect "soleil456"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "soleil456"
End With
Case Is = "Ajouter"
With Sheets("Registre clients")
.Unprotect "soleil456"
DerColonne = .Range("A" & IndexList).End(xlToRight).Column + 1
If DerColonne < 11 Then DerColonne = 11
'remplacer la dernière colonne > si plus de 5 ressources ci-dessous
If DerColonne > 35 Then MsgBox "Impossible d'ajouter cette ressource supplémentaire pour ce client", vbInformation: Exit Sub
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "soleil456"
End With
Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "soleil456"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Delete
Next
.Protect "soleil456"
End With
End Select
Formulaire.CbxNom = ""
Me.Hide
End Sub
Code:
Private Sub UserForm_Initialize()
Dim i As Byte
RessourceInfo = Array(Formulaire.ListView1.SelectedItem, _
Formulaire.ListView1.SelectedItem.ListSubItems(1), _
Formulaire.ListView1.SelectedItem.ListSubItems(2), _
Formulaire.ListView1.SelectedItem.ListSubItems(3), _
Formulaire.ListView1.SelectedItem.ListSubItems(4), _
Formulaire.ListView1.SelectedItem.ListSubItems(5), _
Formulaire.ListView1.SelectedItem.ListSubItems(6))
Dim c As Control
For Each c In Me.Controls
If TypeName(c) = "Frame" Then i = i + 1: c.Caption = ColList(i): Controls("TextBox" & i).Tag = i: Controls("TextBox" & i).Text = RessourceInfo(i):
Next
End Sub

J'ai entré des données dans chaque cellule de la colonne J (Conditions de paiement).
J'ai ouvert le formulaire "Fiche client".
J'ai sélectionné un client parmi ceux de la liste déroulante "Nom", client qui avait déjà un contact.
J'ai cliqué sur le bouton "Ajouter" pour permettre au formulaire "Ressource" de s'ouvrir.
Les informations affichées sont cellers du contact C1.
Je l'ai fermé et ouvert à nouveau et là, il était vide.
J'ai entré les infos du nouveau contact puis j'ai appuyé sur le bouton "Ajouté" 
Les information du nouveau contact ont écrasé celle du contact en C1

Voilà pour ma procédure. C'est comme si le code modifiait au lieu d'ajouter.

Merci,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Dim 30 Nov - 14:09

Bonjour,
je te propose de mettre ce code à la place du tiens et de me donner les résultats des trois messages (non confidentiel)
Code:

'IndexList = ligne à modifier
'colonne est un repère pour la colonne de ressource
Dim c As Control
Private Sub CommandButton1_Click()
Dim DerColonne As Long
Select Case CommandButton1.Caption
Case Is = "Modifier"
With Sheets("Registre clients")
.Unprotect "soleil456"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "soleil456"
End With
Case Is = "Ajouter"
With Sheets("Registre clients")
.Unprotect "soleil456"
DerColonne = .Range("A" & IndexList).End(xlToRight).Column + 1
Msgbox DerColonne
Msgbox .Range("I" & IndexList)
Msgbox .Range("J" & IndexList)
If DerColonne < 11 Then DerColonne = 11
'remplacer la dernière colonne > si plus de 5 ressources ci-dessous
If DerColonne > 35 Then MsgBox "Impossible d'ajouter cette ressource supplémentaire pour ce client", vbInformation: Exit Sub
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "soleil456"
End With
Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "soleil456"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Delete
Next
.Protect "soleil456"
End With
End Select
Formulaire.CbxNom = ""
Me.Hide
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
danpom302
Step_Three_VBA
Step_Three_VBA

Localisation : Québec
Messages : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Lun 1 Déc - 4:11

Bonsoir Fhoest,

Voici les messages reçus:

1er : Boîte Microsoft Excel avec le nombre 9
2e : Boîte Microsoft Excel vide
3e : Boîte Microsoft Excel avec le nombre 0.05

Puis un message : Erreur d’exécution ‘13’
Incompatibilité de type

Ligne :

Code:
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Text


La partie surlignée en jaune commence à : .Cells(In....

En espérant que le tout d'indique le problème,




Merci,




Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Lun 1 Déc - 8:02

Bonjour,
donc mise à part erreur exécution 13,
cela veut dire que ta cellule I est vide donc la valeur de DerColonne sera toujours = 11 donc Colonne K
pour chaque passage,
Jai mis plus haut:
il faut impérativement que la cellule de la colonne J ne soit pas vide
ce que tu as fait mais il en est de même pour les renseignements des colonnes A,B,C,D,E,F,G,H,I,J.
Pour t'expliquer un peu cette ligne de code:
Code:
DerColonne = .Range("A" & IndexList).End(xlToRight).Column + 1

est égale à: va chercher la dernière cellule vide de droite à partir de la colonne A et ajoute 1.
Ensuite il faudrait corrigé ça et revenir avec le problème execution 13,(je ne comprend pas pourquoi il y a cette erreur pour le moment.
éventuellement on peut mettre Txt.value au lieu de TXT.txt à la fin de la ligne qui bugg.
C'est ce que je peux te dire pour le moment.
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 : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Lun 1 Déc - 15:39

Bonjour Fhoest,

Merci pour tes suggestions et commentaires.

Je comprends maintenant ton code qui recherche la dernière cellule de la ligne questionnée donc, les cellules de cette ligne, colonnes A à J doivent toujours contenir un texte quelconque. J'ai corrigé les infos du registre client. Le code suivant est celui que j'utilise.

Code:
DerColonne = .Range("A" & IndexList).End(xlToRight).Column + 1

J'ai refait un test en m'assurant qu'il y ait une donnée dans chaque cellule et j'obtiens les messages suivants soit, 17 (Bonne cellule pour un 2e contact), 0.05 (???) et blocage à la même ligne et du même texte.

Je peux entrer par défaut un tiret dans chaque champ du formulaire Ressource afin d'éviter qu'il y ait un blocage du code mais même cette façon de faire ne sera pas très conviviale et surtout, à l'épreuve d'erreur. Il s'agira simplement que la personne qui entre les données efface par mégarde un des tirets dans un des champs du formulaire pour que le tout bloque. En plus, s'il manque une information dans un des champs du formulaire Fiche client, il y aura un blocage (Bugg). 

Pouvons-nous modifier ce code pour qu'il soit à l'épreuve de tout erreur humaine?

Merci,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Lun 1 Déc - 23:00

Bonsoir,
pour cette ligne

Code:

If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Text

remplace par
Code:

If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Value
Ensuite pour la gestion erreur humaine,on verra ce que l'on peut faire.
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
danpom302
Step_Three_VBA
Step_Three_VBA

Localisation : Québec
Messages : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Mar 2 Déc - 1:11

Bonjour Fhoest,

J'ai remplacé mon code par le tient. Voici le résultat : 17, vide, 0.05, suivi du même blocage.
Code:
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Value


Voilà,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Mar 2 Déc - 7:34

Bonjour,
peux tu renvoyer la version du fichier simplifié et me donner les valeurs des champs que tu utilises plus ou moins identiques dans la forme mais sans donner confidentielle.
la ligne que tu souhaites modifié de cette façon je pourrais débugger.
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
danpom302
Step_Three_VBA
Step_Three_VBA

Localisation : Québec
Messages : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Mar 2 Déc - 14:06

Bonjour Fhoest,

Voici mon fichier tel que demandé.

http://pvb.comeze.com/Fichier_upload/danpom302/Fiche_client_Facture_V2.1.xlsm

Merci pour ton aide,

Dan
avatar
danpom302
Step_Three_VBA
Step_Three_VBA

Localisation : Québec
Messages : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Mar 2 Déc - 16:36

Bonjour Fhoest,

J'ai essayé plusieurs versions de tes codes et voici que celle-ci fonctionne probablement parce que j'ai placé des tirets dans les champs dont je n'avais pas de données à insérer.

Code:
'IndexList = ligne à modifier
'colonne est un repère pour la colonne de ressource
Dim c As Control
Private Sub CommandButton1_Click()
Dim DerColonne As Long
Select Case CommandButton1.Caption
Case Is = "Modifier"
With Sheets("Registre clients")
.Unprotect "test"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "soleil456"
End With
Case Is = "Ajouter"
With Sheets("Registre clients")
.Unprotect "soleil456"
DerColonne = .Range("A" & IndexList).End(xlToRight).Column + 1
If DerColonne < 11 Then DerColonne = 11
'remplacer la dernière colonne > si plus de 5 ressources ci-dessous
If DerColonne > 35 Then MsgBox "Impossible d'ajouter cette ressource supplémentaire pour ce client", vbInformation: Exit Sub
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "soleil456"
End With
Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "soleil456"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Delete
Next
.Protect "soleil456"
End With
End Select
Formulaire.CbxNom = ""
Me.Hide
End Sub

Private Sub UserForm_Initialize()
Dim i As Byte
RessourceInfo = Array(Formulaire.ListView1.SelectedItem, _
Formulaire.ListView1.SelectedItem.ListSubItems(1), _
Formulaire.ListView1.SelectedItem.ListSubItems(2), _
Formulaire.ListView1.SelectedItem.ListSubItems(3), _
Formulaire.ListView1.SelectedItem.ListSubItems(4), _
Formulaire.ListView1.SelectedItem.ListSubItems(5), _
Formulaire.ListView1.SelectedItem.ListSubItems(6))
Dim c As Control
For Each c In Me.Controls
If TypeName(c) = "Frame" Then i = i + 1: c.Caption = ColList(i): Controls("TextBox" & i).Tag = i: Controls("TextBox" & i).Text = RessourceInfo(i):
Next
End Sub

Les données se place au bon endroit et il n'y a pas de blocage. Maintenant, si je supprime ce dernier contact (C2) à l'aide du formulaire Ressource, le contact se supprime. Jusqu'ici, pas de problème. Si j'entre un nouveau contact, celui-ci se place en C3 parce qu'il reste des 0 dans chacune des cellules du Registre clients contact C2.

Bon, je crois que nous approchons du but.

As-tu une suggestion pour supprimer les zéro dans les cellules dont les données sont supprimées?

Merci Fhoest et à bientôt,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec un code proposé. Ajouter

Message par AdminPVB le Jeu 4 Déc - 10:57

Bonjour Danpom302
éventuellement pour le code:

Code:

'IndexList = ligne à modifier
'colonne est un repère pour la colonne de ressource
Dim c As Control
Private Sub CommandButton1_Click()
Dim DerColonne As Long
Select Case CommandButton1.Caption
Case Is = "Modifier"
With Sheets("Registre clients")
.Unprotect "test"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "soleil456"
End With
Case Is = "Ajouter"
With Sheets("Registre clients")
.Unprotect "soleil456"
DerColonne = .Range("A" & IndexList).End(xlToRight).Column + 1
If DerColonne < 11 Then DerColonne = 11
'remplacer la dernière colonne > si plus de 5 ressources ci-dessous
If DerColonne > 35 Then MsgBox "Impossible d'ajouter cette ressource supplémentaire pour ce client", vbInformation: Exit Sub
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then .Cells(IndexList, DerColonne + CDbl(txt.Tag) - 1).Value = txt.Text
Next
.Protect "soleil456"
End With
Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "soleil456"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then
.Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Delete
If .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).value = 0 then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).value=""
End if
Next
.Protect "soleil456"
End With
End Select
Formulaire.CbxNom = ""
Me.Hide
End Sub

Private Sub UserForm_Initialize()
Dim i As Byte
RessourceInfo = Array(Formulaire.ListView1.SelectedItem, _
Formulaire.ListView1.SelectedItem.ListSubItems(1), _
Formulaire.ListView1.SelectedItem.ListSubItems(2), _
Formulaire.ListView1.SelectedItem.ListSubItems(3), _
Formulaire.ListView1.SelectedItem.ListSubItems(4), _
Formulaire.ListView1.SelectedItem.ListSubItems(5), _
Formulaire.ListView1.SelectedItem.ListSubItems(6))
Dim c As Control
For Each c In Me.Controls
If TypeName(c) = "Frame" Then i = i + 1: c.Caption = ColList(i): Controls("TextBox" & i).Tag = i: Controls("TextBox" & i).Text = RessourceInfo(i):
Next
End Sub
Tu peux tester, je pense que cela pourrais te convenir.
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 : 387
Date d'inscription : 23/09/2013
Age : 66

Résolu Re: Problème avec un code proposé. Ajouter

Message par danpom302 le Sam 6 Déc - 20:36

Bonjour Fhoest,

Tout fonctionne bien.

Si j'ai d'autres problèmes, je ferai une nouvelle demande,

Merci pour ton aide,

Dan

Contenu sponsorisé

Résolu Re: Problème avec un code proposé. Ajouter

Message par Contenu sponsorisé


    La date/heure actuelle est Sam 18 Nov - 7:35