Rectifier une fiche
Bonjour à tous,
Bien sure j'ai crée des fiches en VBA et je voudrai rectifier ces fiches toujours par VBA, je suis confronté avec ce code:
Private Sub CommandButton1_Click()
'La rectication
Dim Ligne As Long
'Quand je suis en édition d'une fiche je voudrai pouvoir rectifier des textbox tels que Tel, Adress, CP, et obs.
'Sachant que le nom ne change pas ainsi que le code.
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 4 ' Le 1er élément (numéro 0) de la ComboBox est sur la ligne 4
With Sheets("clients")
' Rectifie les cellules correspondantes
.Range("C" & Ligne) = Me.TextBox3 ' Adresse
.Range("D" & Ligne) = Me.TextBox4 ' CP
.Range("E" & Ligne) = Me.TextBox5 ' ville
.Range("F" & Ligne) = Me.Tel ' Téléphone
.Range("i" & Ligne) = Me.GSM ' Gsm
.Range("H" & Ligne) = Me.ObsCliPge2 ' Observation
.Range("G" & Ligne) = Me.TextBox6 ' Observation
End WithEnd Sub
Au lieu de rectifier la fiche il me rajoute le nom donc je fini par avoir 2 fiches identiques .
Quelqu'un pourrait me dire où se trouve le problème?
Merci de votre aide
Amicalement
Noel
Salut Noël,
Depuis le temps que tu viens chercher de l'aide sur ce Forum, tu ne sais pas qu'un fichier vaut 10000 lignes de code
Cordialement.
NB : A propos, tu m'as un peu laissé tomber lors de notre dernier échange sur ton fil https://forum.excel-pratique.com/excel/supprimer-la-derniere-ligne-d-un-tableau-dans-vba-t54449.html
Bonjour Yvouille,
Non je ne t'ai pas laissé tombé.
Je pensais que je t'avais répondu en disant que c'était bon.
Oui au fait je me rappelle je crois que je t'ai passé le fichier par MP et tu m'as demandé de ne pas l'utiliser ce biais. Ne pouvant plus t'envoyer de fichier j'ai du fermer le fil sans te répondre en pensant t'avoir répondu.
Je m'en excuse profondément.
C'est vrai qu'un fichier vaut mieux que 10.000 ligne de codes . Encore une fois je m'en excuse. Tout simplement que je recherche aussi de mon côté le pourquoi de a chose.
C'est un fichier adhérents que je suis entrain de monter pour notre association. Je me bute sur ce code cité plus haut.
Peux-tu voir où se situe le problème.
Merci d'avance
Amicalement
Noel
Re-bonjour Noël,
Ton fichier part vraiment dans tous les sens, avec une pétéclée de macros, de UserForm, etc. Ce n’est pas évident de s’y retrouver. L’idéal aurait été de créer un fichier exemple pour poser ta question, fichier qui n’aurait contenu que le UserForm et les macros nécessaires à la démonstration de ton problème. Si jamais tu penses que ça peut encore se faire ……..
De plus je t’ai déjà dit que de joindre des fichiers .rar était délicat car nous n’avons pas tous le programme afin de les lire et – comme je te l’ai déjà dit également – il existe d’autres moyens bien plus simples, tel que de passer par le site http://cjoint.com/. Bien sûr que j’ai quand même pu ouvrir ton fichier .rar (ce que je ne pourrais par exemple pas faire depuis mon lieu de travail), mais j’ai dû tricher en ignorant l’étape à laquelle on me demande d’acheter ce programme.
Revenons-en à ton fichier : je n’ai pas compris – mais je n’ai pas trop cherché non plus - si tu avais un code pour créer des nouvelles lignes et que le code que tu avais présenté dans ton premier message n’est supposé permettre que des corrections ou si tu désires pouvoir effectuer ces deux opérations (création de nouvelles lignes et correction d’anciennes lignes) avec un seul et même code. Peux-tu donner plus d’explication à ce sujet ?
Et puis je n’ai pas compris comment tu déclenchais cette ou ces macros : le UserForm, tu l’ouvres comment ?
A te relire.
Re,
La proposition que tu me faits semble être très bien à savoir :
(création de nouvelles lignes et correction d’anciennes lignes) avec un seul et même codeCelui ci est est bon compromis.
actuellement j'ai un multipage pour la création du fichier et une pour correction. Je pense que sur le multipage j'aurai 2 boutons un pour correction et un pour ajouter une ligne.
Merci de ton aide
Amicalement
Noel
PS Si tu as besoin d'une exemple il faut que je prenne mon temps pour en préparer
Si tu n’as qu’un seul code pour créer de nouvelles lignes et pour en corriger d’autres, ça complique – selon moi – passablement les choses. Si tu n’as encore rien de fait, pars plutôt sur deux codes bien distincts.
Je ne comprends toujours pas comment tu déclenches le code pour la création de nouvelle ligne ni – s’il existe déjà – comment tu déclenches le code qui corrige les lignes existantes.
Peut-être qu’en comprenant cela il ne sera pas nécessaire de créer un nouveau fichier démo, c’était juste une sacré bonne idée pour une prochaine fois.
A te relire.
Ré,
je déclenche le code sur la page 3 de multiple pour créen une nouvelle ligne.
Pour corriger une ligne en ouvrant la gestion des adhérents je sélectionne dans la liste box un adhérent que je confirme à la suite de quoi ouvre un USD avec son numéro et je clique sur OK qui M, envoie sur la pag2 et de la je rectifié ce que je dois rectifier et ensuite je confirme mes rectifications et c, est la au lieu de rectifier il me rajoute l’adgèrent.
Je te remercie.
Amicalement
Noel
cfn3cfn a écrit :je déclenche le code sur la page 3 de multiple pour créen une nouvelle ligne.
Peut-être qu’une de tes feuilles à trois pages, mais je n’en trouve aucune qui se nomme ‘Multiple’. Je ne sais donc toujours pas comment tu ouvres le UserForm qui te permet de créer de nouvelles lignes, ni de quel UserForm ou de quelle macro il s’agit.
Que veux-tu dire par : ‘’En ouvrant la gestion des adhérents’’ ?? S’il s’agit d’un UserForm, comment s’appelle-t-il et comment l’ouvres-tu ?cfn3cfn a écrit :Pour corriger une ligne en ouvrant la gestion des adhérents
A te relire.
Re,
Il est déjà 21h30 chez nous.
Peut-être qu’une de tes feuilles à trois pages, mais je n’en trouve aucune qui se nomme ‘Multiple’. Je ne sais donc toujours pas comment tu ouvres le UserForm qui te permet de créer de nouvelles lignes, ni de quel UserForm ou de quelle macro il s’agit.Je te parlait de multipage. Dans mon USF "ListADH est composé d'une multipage à 3 pages.
La 1ère page c'est la liste, la deuxième c'est la "Fiche" et la 3ème page c'est les "News" c'est à dire une nouvelle fiche en création.
Je te disais plus haut quand je suis sur l'USF ListADH l'ouverture se fait sur la page "liste". Je choisi dans la listbox le nom d'un adhérent pour visionner sa fiche que je confirme par le bouton qui ouvre un autre USF du nom "Num" qui me confirme le N° de l'adhérent dans le lequel je clique sur "OK" qui m'ouvre la 2ème page de la multipage qui se nomme "Fiche". De là je peu modifier si il y a des modifications à apporter et que je confirme par le bouton" image10". C'est à ce moment qu'il devrait venir rectifier les modifications apportées à la fiche. Au lieu de cela il me rempli une ligne qui vient écraser une ligne existante. Alors que je voudrai qu'il m'apporte les rectifications faites.
Sur la 3ème page c'est carrément la création d'une nouvelle fiche adhérent. La création fonctionne. Seule la rectification me pose un souci.
Comme il se fait tard je vais me reposer je verrai la suite demain si tu es toujours présents.
Si tu dois me demander des explications n'hésites pas je te répondrai demain dans la journée.
En tout cas merci de ton courage et de ton dévouement.
Amicalement
Noel
Bonjour
J'ai regardé un peu aussi et je pense qu'en modifiant la ligne surlignée cela devrait s'arranger
Private Sub Image10_Click()
'La rectication
Dim Ligne As Long
'Quand je suis en édition d'une fiche je voudrai pouvoir rectifier des textbox tels que Tel, Adress, CP, et obs.
'Sachant que le nom ne change pas ainsi que le code.
If Me.ComboBox2.ListIndex = -1 Then Exit Sub
'Ligne = Me.ComboBox2.ListIndex + 4 ' Le 1er élément (numéro 0) de la ComboBox est sur la ligne 4
Ligne = Me.ComboBox2.ListIndex + 3 ' Le 1er élément (numéro 0) de la ComboBox est sur la ligne 3
With Sheets("liste")Bonjour à tous,
Bonjour Yvouille, Bonjour Banzaï,
Banzaï toujours très matinal.
Merci Banzaï pour la ligne de code qui fonctionne.
Il me reste un petit problème lors de la sélection sur la page1 de la multipage j'ai la bonne sélection en passant à l'USF "Num" mais quand je confirme pour passer à la page2 le n° afficher est toujours le même mais l'adhérent ne correspond pas au N° il est décalé de -1 par rapport à la sélection.
Je ne sais pas je dois avoir un problème dans un code que je n'arrive pas à trouver.
Pourriez-vous trouver le pourquoi.
Merci à vous deux pour votre aide.
@+
Amicalement
Noel
Re,
C'est bon j'ai trouvé la solution. Le problème était sur la feuille "Liste" en colonne "A".
J'avais une fonction dans la colonne qui me permettait de Numéroter automatiquement.
J'ai enlevé le code cela fonctionne bien
Merci à vous deux.
@+
Amicalement
Noel