Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

AIDE FICHIER QUI BEUG

Fidmo

XLDnaute Occasionnel
Bonjour à toutes & à tous,
Je sollicite votre aide pour ce fichier que je mets en pièce jointe et qui m'a été donné par un ami informaticien qui est aujourd'hui absent. Il a du changé quelque chose qui reste compliqué pour moi et le fichier ne marche pas. Quelqu'un peut-il venir à mon secours SVP
Cordialement.
Fidmo
 

Pièces jointes

  • FIDO-simpl .xlsm
    32.2 KB · Affichages: 58

Staple1600

XLDnaute Barbatruc
Re

@Fidmo
C'est dommage, j'allais de proposer quelques corrections de code VBA
Comme celui-ci par exemple
VB:
'bouton pour voir le tableau excel
'************
Private Sub BtnTableau_Click()
Application.Goto Worksheets("collecte").Cells(Rows.Count, 1).End(3)(2)
End Sub
'ou même celui-là
Private Sub btnEffacer_Click()
Dim ctl As MSForms.Control
For Each ctl In Me.Controls
    Select Case TypeName(ctl)
    Case "TextBox": ctl.Value = Empty
    Case "CheckBox", "OptionButton", "ToggleButton": ctl.Value = 0
    Case "ComboBox", "ListBox": ctl.ListIndex = -1
    End Select
Next ctl
End Sub

PS1:
Tu ne nous a toujours pas dit si tu as bien renommé la feuille SAISIE en collecte ?
Et si tu as renommé le ComboBox1 en ComboLieu?

PS2:
Ton Dieu est "Option Explicit" ou pas?

Sinon le lien ci-dessous devrait pouvoir t'aider pour comprendre les userforms et leur fonctionnement
(le lien)
Regarde en particulier cette section pour savoir comment on renomme un contrôle.
Propriété Nom
Désormais, tu as tout ce qu'il faut pour renommer ComboBox1 en ComboLieu, non ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@Fidmo
J'ajoute cette observation
La ComboBox1 (celle à côté du Label12 avec le nom: IMPOT) se remplit grâce à la plage dynamique nommée:
Lieu_stockage
(qui se construit avec celle formule:=DECALER(liste_valeur!$C$7;0;0;NBVAL(liste_valeur!$C:$C)-1)))
Question: Quel est le rapport entre IMPOT et lieu_stockage ?

NB: Pour voir les autres listes: Formules/Gestionnaire de Noms
(ou appuyer sur les touches: CTRL+F3)
 

Fidmo

XLDnaute Occasionnel
Re -Staple1600,
Pourquoi vous vous obstinez à ne pas me comprendre ? Votre langage d'expert dans cette matière est très compliqué pour moi. J'avais espoir que vous me dites voilà en retour ton fichier refait par vos soins et par votre science comme font heureusement beaucoup d'âmes charitables de ce beau Forum !
Fidmo
 

Staple1600

XLDnaute Barbatruc
Re

@Fidmo
Si tu veux utiliser le VBA, il faut en comprendre le BABA, non ?
Il faut pas être expert pour renommer l'onglet d'un classeur
(Est-ce que tu l'as fait? Est-ce qu'il y a désormais une feuille qui s'appelle collecte ?)
Il ne faut pas être expert pour renommer un ComboBox
Je t'ai mis un lien qui explique comment il faut faire
(il y a même une copie d'écran)
(Est-ce que tu l'as fait? Est-ce qu'il y a désormais un ComboBox qui s'appelle ComboLieu?)

Re -Staple1600,
J'avais espoir que vous me dites voilà en retour ton fichier refait par vos soins* et par votre science** comme font heureusement beaucoup d'âme***s charitables de ce beau Forum !
Fidmo
Puisque tu es inscrit depuis 2016, tu as le temps de t'apercevoir que je ne joins jamais de classeur Excel.
1) je ne poste que:
des suggestions, des conseils, des liens, les formules et du code VBA
(accessoirement des digressions, des tentatives d'humour etc...)
2) Pourquoi?
Parce que ma philosophie est d'inciter le demandeur a mettre les mains dans le cambouis, à mouiller sa chemise pour résoudre sa question.
3) A l'heure actuelle, grâce à 'internet, et à la profusion des sites dédiés à Excel, personne ne peut se prétendre "nul en vba" ad vitam aeternam.
Il suffit d'être curieux, de tester et tester encore et également de suivre les conseils donnés (par moi ou par d'autres) dans les réponses postées.

Cela fait plusieurs fois que je te demande si tu a bien fait le renommage.
Tu ne m'as pas encore répondu sur ce point.

Précisions:
*: cela te sera plus profitable si c'est par tes soins à toi que tu arrives à corriger ton fichier.

**: ma science comme tu dis, c'est juste du temps qui a passé consacré à Excel
(un jour il y a bien fallu que je débute avec Excel: c'était un après-midi de 1991 sur un mac avec Excel 4)

***: je laisse toujours mon âme au vestiaire quand je me connecte.
Surement un travers de laïc athée ou vice versa
 
Dernière édition:

Fidmo

XLDnaute Occasionnel
Re Bonsoir Staple1600,
Il me semble que tu vas un peu plus loin. Ta philosophie ne concerne personne que toi-même. Moi je prétends être nul en Vba, et ce n'est pas toi qui va me convaincre de ne pas le rester. Malgré tes prétentions tu ne peux savoir dans quel domaine je suis fort ! Ou bien tu apportes ton aide ou tu t'éclipses ? pour laisser le temps aux âmes charitables dont la plus part des formistes sont heureux.
Je n'ai plus besoin de tes lumières pardon tes obscurités.
Fidmo
 

Staple1600

XLDnaute Barbatruc
Re

Moi je prétends être nul en Vba, et ce n'est pas toi qui va me convaincre de ne pas le rester.
C'est une maxime que je lis ici pour la première fois sur ce forum.

Je suppute que tu es très fort dans la procrastination et/ou dans la contrition.

Mais ici, on tente de faire dans l'Excel.
(Pourquoi ne pas vouloir m'indiquer dans quelles cellules, les données de l'userform doivent aller ?
Cela n'a rien de compliqué et il ne faut pas être expert pour le faire.

J'ai continué (sans doute un vieux relent d'âme charitable coincé entre deux molaires )
Donc ta macro ainsi modifiée semble mettre les données au bon endroit
NB: J'ai renommé le ComboBox1 en cbImpot c'est plus parlant
VB:
'******
'ajouter un nouveau bordereau de versement
'*********
Private Sub BtnAjout_Click()
Dim ligne As Long, Annee
If MsgBox("   Confirmez-vous l'ajout de la fiche?", vbYesNo, " Confirmation") = vbYes Then
Annee = IIf(Len(TextDate) = 4, TextDate, Year(TextDate))
With Sheets("collecte")
ligne = .Range("B" & Rows.Count).End(xlUp).Row + 1
Range(.Cells(ligne, 1), .Cells(ligne, 10)).Value = _
    Array(ComboService, Annee, cbImpot, TextVolume, TextBV, TextAgent, _
    TextTemps, CheckBV, TextObserv, CheckClass)
Unload Me
FormCollecte.Show
   End With
   Else
   End If
End Sub

NB: Pour tester, il suffit de supprimer la macro qui a le même nom (en la sélectionnant puis en appuyant sur SUPPR)
Et ensuite de copier/coller à la place celle de ce message.

PS: Tu es libre de rester ignare en VBA tout comme je suis libre de répondre sur ce forum dans les discussions où j'ai choisi de répondre.

Mes messages n’interfèrent aucunement avec le Temps des autres XLDnautes.
(encore moins avec leurs âmes)
 

Staple1600

XLDnaute Barbatruc
Re

@Fidmo
Adresse toi à ton Dieu, pour ce qui est de tes volontés

Donc j'ai corrigé également ces deux autres macros
VB:
Private Sub btnRecherche_Click()
Dim no_ligne As Long
no_ligne = ComboNumBV.ListIndex + 2
With Sheets("collecte")
    ComboService.Value = .Cells(no_ligne, 1)
    TextDate.Value = .Cells(no_ligne, 2)
    cbImpot.Value = .Cells(no_ligne, 3)
    TextVolume.Value = .Cells(no_ligne, 4)
    TextBV.Value = .Cells(no_ligne, 5)
    TextAgent.Value = .Cells(no_ligne, 6)
    TextTemps.Value = .Cells(no_ligne, 7)
    CheckBV.Value = .Cells(no_ligne, 8)
    TextObserv.Value = .Cells(no_ligne, 9)
    CheckClass.Value = .Cells(no_ligne, 10)
End With
End Sub
VB:
'********
' modifier une fiche ' test OK
'*********
Private Sub BtnModif_Click()
Dim ligne As Long
If MsgBox("   Confirmez-vous la modification ?", vbYesNo, "   Confirmation de modification") <> vbYes Then Exit Sub
ligne = Me.ComboNumBV.ListIndex + 2
With Sheets("collecte")
    .Range("A" & ligne) = ComboService
    .Range("B" & ligne) = TextDate
    .Range("C" & ligne) = cbImpot
    .Range("D" & ligne) = TextVolume
    .Range("E" & ligne) = TextBV
    .Range("F" & ligne) = TextAgent
    .Range("G" & ligne) = TextTemps
    .Range("H" & ligne) = CheckBV
    .Range("I" & ligne) = TextObserv
    .Range("J" & ligne) = CheckClass
End With
End Sub

PS1: Une fois une question posée sur un forum public, elle vit sa vie de question.
Chaque membre du forum peut y répondre comme il le souhaite quand il le souhaite au rythme qu'il souhaite
(tant que les propos tenus sont conformes etc... cf la charte du forum)

PS2: Si mes messages ne t’intéressent pas.
C'est simple.
Tu peux les lire (ou pas) sans y répondre.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Le fichier texte joint contient le code VBA de l'userform entièrement corrigé
(et normalement testé sans encombres)
@Fidmo
Sache que même si c'est ta question, elle peut intéresser d'autres membres du forum, qui eux auront la curiosité de mettre les mains dans le cambouis.

Donc pour ceux-ci (et toi qui sait, la nuit porte conseil ), il suffit de copier/coller le contenu du fichier texte en lieu et place de code VBA présent dans l'userform.

NB: Il faudra que les contrôles aient les noms qui sont employés dans le code corrigé
(comme je l'ai expliqué plus haut dans le fil)
 

Pièces jointes

  • CodeCorrige_PourFidmo_by_Staple1600.txt
    4.3 KB · Affichages: 14

Fidmo

XLDnaute Occasionnel
Re Staple1600,
J'ai un petit peu la sensation que tu commences à concevoir ou plutôt comprendre et retenir. Une suggestion: ne vaut-il pas mieux se détacher de la discussion ?
Fidmo
 

Staple1600

XLDnaute Barbatruc
Re

@Fidmo
Tout a été dit dans le message#26.

Pour ce qui te concerne, 3 choix s'offrent à toi.
1) arrêter de te victimiser avec ton étendard "c'huis nul" et de peut-être enfin mettre le nez dans VBE
(en copiant par exemple tout le code que je viens de corriger et qui par conséquent fait que ton fichier ne "beug" plus)

2) attendre qu'un autre membre le fasse à ta place (copier mes corrections dans le classeur exemple)

3) attendre qu'un autre membre te propose d'autres corrections et le fichier corrigé.

NB: Tes sensations sont les tiennes pas les miennes.

Sur ce bonne fin de week-end.
 

Fidmo

XLDnaute Occasionnel
Re Staple1600, & Forum,
Maintenant tu viens de trouver une bonne sortie à cette discussion infructueuse pour moi. Je ne copierai rien parce que je connais mes possibilités dans ce domaine.
On fait comme tu dis. Merci pour le temps et bonne fin de soirée.
Fidmo
 

Staple1600

XLDnaute Barbatruc
Re

@Fidmo
Elle est infructueuse pour toi parce que tu le veux bien.
C'est ton droit de pas en foutre une ramée.

Moi j'ai bossé à l’œil sur ton fichier durant un temps assez conséquent.
J'espère au moins que ce ne sera pas en vain.
Espérons que des XLDnautes, autre que le demandeur, seront intéressés par son fichier et par mes corrections qui rendent désormais le fichier posté dans le message#1 fonctionnel.
 

Discussions similaires

Réponses
1
Affichages
277
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…