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

AdminPVB, grisan29


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 5411 messages dans 636 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 code supprimer

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 code supprimer

Message par danpom302 le Dim 8 Fév - 14:14

Bonjour à tous,
J'aurais besoin de votre aide pour corriger un code (Voir plus bas).

Lorsqu'un contact est supprimé à l'aide d'un formulaire, les cellules du registre client contenant ces information sont supprimées et les cellules sont décalées vers le haut. Est-ce possible d'effacer le contenu dans les cellules concernées?






Code:
Private Sub CmdSupprimerRessource_Click()
colonne = ((Me.ListView1.SelectedItem.Index - 1) * 6) + 11
Ressource.CommandButton1.Caption = CmdSupprimerRessource.Caption
Ressource.Show
End Sub


Merci pour votre aide,
Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec code supprimer

Message par AdminPVB le Dim 8 Fév - 15:24

Bonjour,
le code mis ci-dessus n'est pas assez complet pour répondre à ta question.
à mon avis il manque celui du ressource_initialyze.
Bon dimanche.


_________________
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 code supprimer

Message par danpom302 le Dim 8 Fév - 16:10

Bonjour Fhoest,

Merci pour ta réponse. Je te transmet le code pour le formulaire Ressource suivi du code pour le formulaire Fiche client.

Formulaire 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 "lune654"
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 "lune654"
End With
Case Is = "Ajouter"
With Sheets("Registre clients")
.Unprotect "lune654"
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 "lune654"
End With
Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "lune654"
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 "lune654"
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

Formulaire Fiche client
Code:

Private Sub CbxNom_Change()
If Me.TxtNom.Visible = False Then
cls
Dim txt As Control
Dim NUM As Integer: NUM = 11
IndexList = CbxNom.ListIndex + 1
If IndexList = 0 Then Exit Sub
With Sheets("Registre clients")
.Unprotect "lune654"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" Then
If CDbl(txt.Tag) = 2 Then txt = .Cells(IndexList, CDbl(txt.Tag)).Value Else: txt = .Cells(IndexList, CDbl(txt.Tag) + 2).Value
End If
Next
End With
With Sheets("Registre clients")
'ajout élément première colonne
For j = 1 To 5 'incrémentation si plus de ressources
Me.ListView1.ListItems.Add , , "C" & j
'ajout élément autre colonne
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM).Text  ' NOM
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 1).Text 'TEL
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 2).Text 'POST
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 3).Text 'TELECOP
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 4).Text 'CELLULAIRE
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 5).Text 'COURRIEL
NUM = NUM + 6
Next
If Me.ListView1.ListItems.Count <> 0 Then AccesBtnTrue Else AccesBtnFalse
.Protect "lune654"
End With
End If
End Sub
Private Sub CmdAjouterRessource_Click()
Ressource.CommandButton1.Caption = CmdAjouterRessource.Caption
Ressource.Show
End Sub
Private Sub CmdModifierRessource_Click()
colonne = ((Me.ListView1.SelectedItem.Index - 1) * 6) + 11
Ressource.CommandButton1.Caption = CmdModifierRessource.Caption
Ressource.Show
End Sub
Private Sub CmdNouveauClient_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If modif = True Then
CmdNouveauClient.ControlTipText = "Enregistrement de la modification du client"
Else:
CmdNouveauClient.ControlTipText = "Ajout du client au registre Clients"
End If
End Sub
Private Sub CmdRetour_Click()
CmdNouveauClient.Caption = "Nouveau": CmdRetour.Visible = False: TxtNom.Visible = False: Me.CbxNom.Visible = True: modif = False
End Sub
Private Sub CmdNouveauClient_Click()
If CmdNouveauClient.Caption = "Nouveau" Then CmdNouveauClient.Caption = "Enregistrer": TxtNom.Visible = True: Me.CbxNom.Visible = False: cls: CmdRetour.Visible = True: Exit Sub
If CmdNouveauClient.Caption = "Enregistrer" Then CmdNouveauClient.Caption = "Nouveau": CmdRetour.Visible = False
Call AjoutClient
Me.CbxNom.List = Sheets("Registre clients").[D:D].Value
End Sub
Private Sub CmdRetour_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If modif = True Then
CmdRetour.ControlTipText = "Annuler la modification du client"
Else:
CmdRetour.ControlTipText = "Annuler ajout nouveau client"
End If
End Sub
Private Sub CmdSupprimerRessource_Click()
colonne = ((Me.ListView1.SelectedItem.Index - 1) * 6) + 11
Ressource.CommandButton1.Caption = CmdSupprimerRessource.Caption
Ressource.Show
End Sub

Private Sub CommandButton1_Click()
Sheets("Instruction bouton Fiche client").Select
End Sub

Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TxtDate <> "" Then TxtDate = Replace(TxtDate, "e", "é", 1, -1, vbTextCompare)
If IsDate(TxtDate) = False And TxtDate <> "" Then MsgBox "Date eronnée", vbInformation, "Erreur date"
End Sub

Private Sub UserForm_Initialize()
ListView1.View = lvwReport
ColList = Array("Ref", "Contact", "Téléphone", "Poste", "Télécopieur", "Cellulaire", "Courriel")
Me.CbxNom.List = Sheets("Registre clients").[D:D].Value
DrLigne = Sheets("Registre clients").Range("C1").End(xlDown).Row + 1
For i = 0 To UBound(ColList)
If i = 0 Then
ListView1.ColumnHeaders.Add , , ColList(i), 25
Else:
ListView1.ColumnHeaders.Add , , ColList(i), 92
End If
Next
AccesBtnFalse
End Sub
Sub cls()
ListView1.ListItems.Clear
Dim c As Control
For Each c In Me.Controls
If TypeName(c) = "TextBox" Then c = Null
Next
AccesBtnFalse
End Sub
Sub AjoutClient()
Dim LaDate As String
LaDate = Replace(Me.TxtDate.Value, "/", " ")
If modif = True Then
With Sheets("Registre clients")
.Unprotect "lune654"
.Range("C" & IndexList).Value = Format(LaDate, "DD MMM YYYY") 'Date
.Range("D" & IndexList).Value = StrConv(Me.TxtNom.Text, vbProperCase) 'Client
.Range("E" & IndexList).Value = Me.TxtAdresse.Text 'Adresse
.Range("F" & IndexList).Value = StrConv(Me.TxtVille.Text, vbProperCase) 'Ville
.Range("G" & IndexList).Value = StrConv(Me.TxtProv.Text, vbProperCase) 'Prov.
.Range("H" & IndexList).Value = Me.TxtPostal.Text ' Code postal
.Range("I" & IndexList).Value = StrConv(Me.TxtPays.Text, vbProperCase) 'Pays
.Range("AO" & IndexList).Value = UCase(Left(Me.TxtNom.Text, 3))
.Protect "lune654"
End With
Else:
With Sheets("Registre clients")
.Unprotect "lune654"
.Range("C" & DrLigne).Value = Format(LaDate, "DD MMM YYYY") 'Date
.Range("D" & DrLigne).Value = StrConv(Me.TxtNom.Text, vbProperCase) 'Client
.Range("E" & DrLigne).Value = Me.TxtAdresse.Text 'Adresse
.Range("F" & DrLigne).Value = StrConv(Me.TxtVille.Text, vbProperCase) 'Ville
.Range("G" & DrLigne).Value = StrConv(Me.TxtProv.Text, vbProperCase) 'Prov.
.Range("H" & DrLigne).Value = Me.TxtPostal.Text ' Code postal
.Range("I" & DrLigne).Value = StrConv(Me.TxtPays.Text, vbProperCase) 'Pays
.Range("AO" & DrLigne).Value = UCase(Left(Me.TxtNom.Text, 3))

ActiveWorkbook.Worksheets("Registre clients").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Registre clients").Sort.SortFields.Add Key:=Range( _
"D2:D1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Registre clients").Sort
.SetRange Range("A1:AS1001")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
Sheets("Registre clients").Protect "lune654"
TxtNom.Visible = False
Me.CbxNom.Visible = True
CmdNouveauClient.Caption = "Nouveau"
CmdRetour.Visible = False
DrLigne = DrLigne + 1
MsgBox "Le client a bien été ajouté au registre clients ", vbInformation, "Enregistrement d'un client"
modif = False
cls
End With
End If
End Sub
Sub AccesBtnTrue()
Me.CmdAjouterRessource.Enabled = True
Me.CmdModifierRessource.Enabled = True
Me.CmdSupprimerRessource.Enabled = True
End Sub
Sub AccesBtnFalse()
Me.CmdAjouterRessource.Enabled = False
Me.CmdModifierRessource.Enabled = False
Me.CmdSupprimerRessource.Enabled = False
End Sub

Merci pour ton aide,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec code supprimer

Message par AdminPVB le Dim 8 Fév - 18:24

Re,
Peux tu essayer ça ?
on supprime la ligne complète
Code:
Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "lune654"
.Cells(IndexList, colonne) - 1).EntireRow.Delete
.Protect "lune654"
End With
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 code supprimer

Message par danpom302 le Dim 8 Fév - 23:03

Bonjour Fhoest,

Merci pour ta réponse.

Si on supprime la ligne entière, toutes les informations du client seront supprimées alors que c'est seulement un seul contact parmi les 5 contacts possibles chez ce client que je désire effacer du registre client. Le contact à effacer pourrait être le 1er ou le 2e ou n'importe lequel des 5.

Dans mon registre client j'ai toutes ces en-têtes:

Réf.No clientDateClientAdresseVilleProv.Code postalPaysCondition de paiementRessource1Téléphone1Poste1Cell1Téléc1Courriel1Ressource2Téléphone2Poste2Cell2Téléc2Courriel2Ressource3Téléphone3Poste3Cell3Téléc3Courriel3Ressource4Téléphone4Poste4Cell4Téléc4Courriel4Ressource5Téléphone5Poste5Cell5Téléc5Courriel5Préfixe


Tu comprendras que je ne peux pas supprimer une ligne dans ce registre d'autant plus que dans un registre client, supprimer toutes les informations d'un client n'est pas bien vu aux yeux d'un percepteur de taxes.

As-tu une autre suggestion à moins que je ne comprenne pas bien ce que tu veux que j'essai?

Merci,

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 code supprimer

Message par danpom302 le Dim 8 Fév - 23:07

Bonjour Fhoest,

Les en-têtes ne sont pas toutes affichées dans mon dernier message; il y en a un total de 45.

Merci d'en prendre note,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec code supprimer

Message par AdminPVB le Lun 9 Fév - 5:05

danpom302 a écrit:Bonjour à tous,
 et les cellules sont décalées vers le haut. Est-ce possible d'effacer le contenu dans les cellules concernées?



danpom302 a écrit:Bonjour Fhoest,

As-tu une autre suggestion à moins que je ne comprenne pas bien ce que tu veux que j'essai?

Merci,

Dan

Bonjour Dan,
En fait c'est moi qui ne comprends pas ce que tu souhaites, le fait que tu parles des cellules du dessus qui remontent, je me suis dit peut être qu'en supprimant la ligne complètement le problème ne sera plus.
Pour plus de clareté,
pourrais tu à l'aide de trois copies écran:
1° cellules après suppression à l'état actuel.
2° cellules supprimer avec résultat souhaité
3° résultat des cellules qui remontent afin de comprendre ce que tu dis.
et + si il ne faut.

Merci et à 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 code supprimer

Message par danpom302 le Lun 9 Fév - 19:25

Bonjour Fhoest,

Comment faire une capture d'écran et la joindre dans ce message? J'ai Internet Explorer.

Merci,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec code supprimer

Message par AdminPVB le Lun 9 Fév - 19:39

Bonsoir,
pour joindre l'élément:
1° print screen ou impr ecran,
2° ouvrir paint.exe
3° coller ou Ctrl+v
4° Enregistrer le fichier en image
5° à l'aide du forum insérer une image ... parcourir.
6° copier le code ou lien proposé (après la validation du fichier image choisi.) dans le formulaire de réponse, ou enregister comme un fichier sur le serveur.
Voilà ce que je peux te dire.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

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

Tout simplement.


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

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

study

avatar
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 code supprimer

Message par danpom302 le Mar 10 Fév - 4:50

Bonsoir Fhoest,

Je joins un fichier Excel avec 3 feuilles montrant 1, avant suppression 2, après suppression et 3, ce qui est requis.

Merci,

Dan

http://pvb.comeze.com/Fichier_upload/danpom302/Essai_555.xlsx
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec code supprimer

Message par AdminPVB le Mar 10 Fév - 5:06

Bonjour,
ok,
essai:

Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "lune654"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then
.Cells(IndexList, colonne + CDbl(txt.Tag) - 1).value=""
If .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = 0 Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = ""
End If
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 code supprimer

Message par danpom302 le Mer 11 Fév - 13:18

Bonjour Fhoest,

Merci pour ton code. Le tout fonctionne bien.

Pa contre, à l'aide du même formulaire et des codes Formulaire Fiche client et Ressources, lorsque je désire ajouter un 2e contact dans un même client, lorsque j'appuie sur le bouton Ajouter, la macro remplace le contact C1 par ce nouveau contact alors que celui-ci devrait se positionner en C2 pour contact No 2. Il y a une possibilité de 5 contacts par client.

Peux-tu s.v.p. vérifier les codes suivants et me revenir avec une solution,

Merci pour ton aide,

Dan

Formulaire Fiche client:

Code:

Private Sub CbxNom_Change()
If Me.TxtNom.Visible = False Then
cls
Dim txt As Control
Dim NUM As Integer: NUM = 11
IndexList = CbxNom.ListIndex + 1
If IndexList = 0 Then Exit Sub
With Sheets("Registre clients")
.Unprotect "lune654"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" Then
If CDbl(txt.Tag) = 2 Then txt = .Cells(IndexList, CDbl(txt.Tag)).Value Else: txt = .Cells(IndexList, CDbl(txt.Tag) + 2).Value
End If
Next
End With
With Sheets("Registre clients")
'ajout élément première colonne
For j = 1 To 5 'incrémentation si plus de ressources
Me.ListView1.ListItems.Add , , "C" & j
'ajout élément autre colonne
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM).Text  ' NOM
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 1).Text 'TEL
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 2).Text 'POST
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 3).Text 'TELECOP
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 4).Text 'CELLULAIRE
Me.ListView1.ListItems(j).ListSubItems.Add , , .Cells(IndexList, NUM + 5).Text 'COURRIEL
NUM = NUM + 6
Next
If Me.ListView1.ListItems.Count <> 0 Then AccesBtnTrue Else AccesBtnFalse
.Protect "lune654"
End With
End If
End Sub
Private Sub CmdAjouterRessource_Click()
Ressource.CommandButton1.Caption = CmdAjouterRessource.Caption
Ressource.Show
End Sub
Private Sub CmdModifierRessource_Click()
colonne = ((Me.ListView1.SelectedItem.Index - 1) * 6) + 11
Ressource.CommandButton1.Caption = CmdModifierRessource.Caption
Ressource.Show
End Sub
Private Sub CmdNouveauClient_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If modif = True Then
CmdNouveauClient.ControlTipText = "Enregistrement de la modification du client"
Else:
CmdNouveauClient.ControlTipText = "Ajout du client au registre Clients"
End If
End Sub
Private Sub CmdRetour_Click()
CmdNouveauClient.Caption = "Nouveau": CmdRetour.Visible = False: TxtNom.Visible = False: Me.CbxNom.Visible = True: modif = False
End Sub
Private Sub CmdNouveauClient_Click()
If CmdNouveauClient.Caption = "Nouveau" Then CmdNouveauClient.Caption = "Enregistrer": TxtNom.Visible = True: Me.CbxNom.Visible = False: cls: CmdRetour.Visible = True: Exit Sub
If CmdNouveauClient.Caption = "Enregistrer" Then CmdNouveauClient.Caption = "Nouveau": CmdRetour.Visible = False
Call AjoutClient
Me.CbxNom.List = Sheets("Registre clients").[D:D].Value
End Sub
Private Sub CmdRetour_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If modif = True Then
CmdRetour.ControlTipText = "Annuler la modification du client"
Else:
CmdRetour.ControlTipText = "Annuler ajout nouveau client"
End If
End Sub
Private Sub CmdSupprimerRessource_Click()
colonne = ((Me.ListView1.SelectedItem.Index - 1) * 6) + 11
Ressource.CommandButton1.Caption = CmdSupprimerRessource.Caption
Ressource.Show
End Sub

Private Sub CommandButton1_Click()
Sheets("Instruction bouton Fiche client").Select
End Sub

Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TxtDate <> "" Then TxtDate = Replace(TxtDate, "e", "é", 1, -1, vbTextCompare)
If IsDate(TxtDate) = False And TxtDate <> "" Then MsgBox "Date eronnée", vbInformation, "Erreur date"
End Sub

Private Sub UserForm_Initialize()
ListView1.View = lvwReport
ColList = Array("Ref", "Contact", "Téléphone", "Poste", "Télécopieur", "Cellulaire", "Courriel")
Me.CbxNom.List = Sheets("Registre clients").[D:D].Value
DrLigne = Sheets("Registre clients").Range("C1").End(xlDown).Row + 1
For i = 0 To UBound(ColList)
If i = 0 Then
ListView1.ColumnHeaders.Add , , ColList(i), 25
Else:
ListView1.ColumnHeaders.Add , , ColList(i), 92
End If
Next
AccesBtnFalse
End Sub
Sub cls()
ListView1.ListItems.Clear
Dim c As Control
For Each c In Me.Controls
If TypeName(c) = "TextBox" Then c = Null
Next
AccesBtnFalse
End Sub
Sub AjoutClient()
Dim LaDate As String
LaDate = Replace(Me.TxtDate.Value, "/", " ")
If modif = True Then
With Sheets("Registre clients")
.Unprotect "lune654"
.Range("C" & IndexList).Value = Format(LaDate, "DD MMM YYYY") 'Date
.Range("D" & IndexList).Value = StrConv(Me.TxtNom.Text, vbProperCase) 'Client
.Range("E" & IndexList).Value = Me.TxtAdresse.Text 'Adresse
.Range("F" & IndexList).Value = StrConv(Me.TxtVille.Text, vbProperCase) 'Ville
.Range("G" & IndexList).Value = StrConv(Me.TxtProv.Text, vbProperCase) 'Prov.
.Range("H" & IndexList).Value = Me.TxtPostal.Text ' Code postal
.Range("I" & IndexList).Value = StrConv(Me.TxtPays.Text, vbProperCase) 'Pays
.Range("AO" & IndexList).Value = UCase(Left(Me.TxtNom.Text, 3))
.Protect "lune654"
End With
Else:
With Sheets("Registre clients")
.Unprotect "lune654"
.Range("C" & DrLigne).Value = Format(LaDate, "DD MMM YYYY") 'Date
.Range("D" & DrLigne).Value = StrConv(Me.TxtNom.Text, vbProperCase) 'Client
.Range("E" & DrLigne).Value = Me.TxtAdresse.Text 'Adresse
.Range("F" & DrLigne).Value = StrConv(Me.TxtVille.Text, vbProperCase) 'Ville
.Range("G" & DrLigne).Value = StrConv(Me.TxtProv.Text, vbProperCase) 'Prov.
.Range("H" & DrLigne).Value = Me.TxtPostal.Text ' Code postal
.Range("I" & DrLigne).Value = StrConv(Me.TxtPays.Text, vbProperCase) 'Pays
.Range("AO" & DrLigne).Value = UCase(Left(Me.TxtNom.Text, 3))

ActiveWorkbook.Worksheets("Registre clients").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Registre clients").Sort.SortFields.Add Key:=Range( _
"D2:D1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Registre clients").Sort
.SetRange Range("A1:AS1001")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
Sheets("Registre clients").Protect "lune654"
TxtNom.Visible = False
Me.CbxNom.Visible = True
CmdNouveauClient.Caption = "Nouveau"
CmdRetour.Visible = False
DrLigne = DrLigne + 1
MsgBox "Le client a bien été ajouté au registre clients ", vbInformation, "Enregistrement d'un client"
modif = False
cls
End With
End If
End Sub
Sub AccesBtnTrue()
Me.CmdAjouterRessource.Enabled = True
Me.CmdModifierRessource.Enabled = True
Me.CmdSupprimerRessource.Enabled = True
End Sub
Sub AccesBtnFalse()
Me.CmdAjouterRessource.Enabled = False
Me.CmdModifierRessource.Enabled = False
Me.CmdSupprimerRessource.Enabled = False
End Sub

Formulaire Ressources

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 "lune654"
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 "lune654"
End With
Case Is = "Ajouter"
With Sheets("Registre clients")
.Unprotect "lune654"
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 "lune654"
End With
Case Is = "Supprimer"
With Sheets("Registre clients")
.Unprotect "lune654"
For Each txt In Me.Controls
If TypeName(txt) = "TextBox" And txt.Tag <> "0" Then
.Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = ""
If .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = 0 Then .Cells(IndexList, colonne + CDbl(txt.Tag) - 1).Value = ""
End If

Next
.Protect "lune654"
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
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec code supprimer

Message par AdminPVB le Mer 11 Fév - 17:03

Bonjour,
lorsque tu ajoutes un deuxième client , Est ce que tout les champs de cette même ligne , avant la colonne 11 sont renseignés ?
peux tu vérifier svp ?
Merci et à bientôt.
Very Happy
J'en doute


_________________
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 code supprimer

Message par danpom302 le Mer 11 Fév - 20:04

Bonjour Fhoest,

Oui, lorsque j'enregistre un nouveau client, tous les champs sont remplies avec au moins un caractère.

Lorsque j'ajoute un premier contact à un client, les informations du formulaire Ressource s'ajoutent dans les colonnes 11, 12, 13, 14, 15 et 16.

Lorsque j'ajoute un 2e contact à ce même client, les informations écrasent celles des colonnes 11, 12, 13, 14, 15 et 16 alors que celles-ci devraient s'inscrire dans les colonnes 17, 18, 19, 20, 21,et 22.

Le 3e contact dans les colonnes 23, 24, 25, 26, 27 et 28, etc., pour le 4e et le 5e contact.

Si tu as besoin d'autres informations, n'hésites pas à me les demander.

Merci,

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 code supprimer

Message par danpom302 le Mer 11 Fév - 20:14

Bonjour Fhoest,

Rectification concernant ma dernière réponse, effectivement, il y avait une cellule de vide. Maintenant le tout fonctionne.

Est-il possible d'entrer une information par défaut dans le formulaire Ressource comme le nom du Pays?

J'ai vérifier dans les propriété du formulaire Ressource mais je n'arrive pas à le faire.

Merci,

Dan
avatar
AdminPVB
Admin
Admin

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

Résolu Re: Problème avec code supprimer

Message par AdminPVB le Mer 11 Fév - 20:37

re,

Case Is = "Ajouter"
With Sheets("Registre clients")
.Unprotect "lune654"
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

 .Range("I" & IndexList).value= "France"

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 "lune654"
Pour test. cheers


_________________
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 code supprimer

Message par danpom302 le Mer 11 Fév - 21:27

Bonsoir Fhoest,

Merci pour ton dernier code. J'ai remplacé France pour Canada et tout fonctionne bien.

Merci encore une fois pour ton aide,

Dan

Contenu sponsorisé

Résolu Re: Problème avec code supprimer

Message par Contenu sponsorisé


    La date/heure actuelle est Jeu 23 Nov - 6:33