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 7 utilisateurs en ligne :: 2 Enregistrés, 0 Invisible et 5 Invités

AdminPVB, IFFIC


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 6060 messages dans 678 sujets

Nous avons 551 membres enregistrés

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

Recherche dans les forums

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


Derniers sujets

» Bienvenue à Pralin
par Berly Ven 25 Mai - 21:27

» Instants musique
par Berly Ven 25 Mai - 21:24

» 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

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 proposé. Ajouter

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 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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 : 2033
Date d'inscription : 24/05/2013
Age : 42

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 : 426
Date d'inscription : 23/09/2013
Age : 67

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 Dim 27 Mai - 13:57