Microsoft 365 modif code VBA

  • Initiateur de la discussion Initiateur de la discussion riv
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

riv

XLDnaute Nouveau
bonjour

je n'arrive pas a modifier le code comme je le souhaiterais

1 on clic sur ajout d'un entretien
2 on rempli les critères dans texte1,2,3 et 4 (un seul critère peut suffire) pour sélectionner la ligne souhaiter si plusieurs critère contrôle qu'il sont sur la même ligne ( en remplacement de "ligne = ActiveCell.Row")
3 on rempli la date, le kilométrage
4 on sélectionne les interventions effectuer
5 on clic sur ajout dans la base (jusqu'à la ligne 24 la saisie multiple fonctionne mais pas après)


pouvez vous m'aider svp
cordialement
 

Pièces jointes

Bonjour

Je ne comprend pas le fonctionnement attendu de ton programme

Il faut d'abord sélectionner la ligne à éditer AVANT de lancer le formulaire ??
dans ce cas, pourquoi faut il resaisir toutes les informations (texte 1 à 4)

et dans ton code.. de toute facon. quelques soient les informations saisies, c'est JUSTE la ligne selectionnée qui est modifiée..
 
Bonjour Riv,
J'ai essayé et y suis arrivé en ligne 50. J'ai mis 4 critères et ils ont été correctement recopiés.

Serait il possible que vous vous laissiez abuser par la hauteur ligne ? car effectivement à la copie seul le premier item est visible, il faut élargir la ligne pour voir les autres.

J'ai rajouté cette ligne en fin de macro "transfert_Click"
VB:
'choix de la ligne sur laquelle il ecrit
Cells(ligne, 15) = T
Rows.AutoFit           ' Ajuste automatiquement la hauteur des lignes'
End Sub

Est ce là le souci ? Sinon donnez le contexte exact de remplissage de l'userform où est rencontré le problème.
 
Hello @sylvanu

perso, j'ai aussi fait quelques essais..
le choix des 4 textbox n'a strictement AUCUN impact.. tu peux bien mettre ce que tu veux (ou meme ne rien mettre du tout)
SEULE la ligne selectionnée est modifiée, et ce. juste en colonne O


à mon avis, il faudrait déjà revoir les listes de véhicules.
de nombreuses immat sont en double (je suppose que c'était pour l'exemple.. mais autant faire quelque chose de cohérent.. Immat1 , Immat2.....)

et à CHAQUE immat, associer les spécificités du véhicule. car la.. rien n'empeche de dire que l'immat1 , un coup, c'est un PL et juste après.. finalement c'est un VL...
une table unique serait plus pratique..pour la suite
 
Bonjour

Je ne comprend pas le fonctionnement attendu de ton programme

Il faut d'abord sélectionner la ligne à éditer AVANT de lancer le formulaire ??
dans ce cas, pourquoi faut il resaisir toutes les informations (texte 1 à 4)

et dans ton code.. de toute facon. quelques soient les informations saisies, c'est JUSTE la ligne selectionnée qui est modifiée..
justement je voudrais changer cela je voudrais que ce soit mes 4 critères qui sélection ma ligne a compléter et si intervention 1 est deja rempli alors passer en intervention 2
 
autre incohérence
le test sur le numéro de ligne <5.. pourquoi 5 ?? les tableaux commencent en ligne 15

à quoi sert la colonne B: elle est vide.. mais elle semble décomposée avec des cellules fusionnées...
le test sur le numéro de ligne <5 est un copier coller que je n'ai pas modifier 🙁 , la colonne B est utiliser mais confidentiel donc c'est pour cela qu'elle est vide
 
Bonjour Riv,
J'ai essayé et y suis arrivé en ligne 50. J'ai mis 4 critères et ils ont été correctement recopiés.

Serait il possible que vous vous laissiez abuser par la hauteur ligne ? car effectivement à la copie seul le premier item est visible, il faut élargir la ligne pour voir les autres.

J'ai rajouté cette ligne en fin de macro "transfert_Click"
VB:
'choix de la ligne sur laquelle il ecrit
Cells(ligne, 15) = T
Rows.AutoFit           ' Ajuste automatiquement la hauteur des lignes'
End Sub

Est ce là le souci ? Sinon donnez le contexte exact de remplissage de l'userform où est rencontré le problème.
merci pour le "Rows.AutoFit"
 
En PJ une proposition avec quelques modifications

1) Feuille Listes: on utilise des tables structurées avec des noms "Tab_xxxx"
UNE table "Tab_Immat" qui permet de lister ton parc auto: Une immat est UNIQUE==> tu peux (dois) choisir les différentes infos pour chaque immat (elles sont alimentées avec des listes de validation qui utilisent les différentes tables)

2) dans ta feuille "Suivi entretien"
j'ai supprimé des lignes vides qui à mon avis n'apportent rien
par contre. comme j'ai vu ta réponse sur la colonne B après.. il te faudra sans doute les remettre..??
Dans cette table (que j'ai renommée enTab_BDD au lieu de tableau1 comme tu avais: tu as JUSTE à selectionner les Immat pour chaque type (+3tonnes / Engin...)
des formules récupèrent alors les infos de l'immat

tu cliques sur le bouton "Ajout Entretien" ==>la ligne active importe peu
tu selectionnes l'immat dans la liste==> les infos sont remplies automatiquement
et tu fais le reste

pour l'instant: si tu selectionnes les infos dans les autres combo (texte 1 2 4).. il n'y a pas de code permettant de filtrer)
 

Pièces jointes

Dernière édition:
En PJ une proposition avec quelques modifications

1) Feuille Listes: on utilise des tables structurées avec des noms "Tab_xxxx"
UNE table "Tab_Immat" qui permet de lister ton parc auto: Une immat est UNIQUE==> tu peux (dois) choisir les différentes infos pour chaque immat (elles sont alimentées avec des listes de validation qui utilisent les différentes tables)

2) dans ta feuille "Suivi entretien"
j'ai supprimé des lignes vides qui à mon avis n'apportent rien
par contre. comme j'ai vu ta réponse sur la colonne B après.. il te faudra sans doute les remettre..??
Dans cette table (que j'ai renommée enTab_BDD au lieu de tableau1 comme tu avais: tu as JUSTE à selectionner les Immat pour chaque type (+3tonnes / Engin...)
des formules récupèrent alors les infos de l'immat

tu cliques sur le bouton "Ajout Entretien" ==>la ligne active importe peu
tu selectionnes l'immat dans la liste==> les infos sont remplies automatiquement
et tu fais le reste

pour l'instant: si tu selectionnes les infos dans les autres combo (texte 1 2 4).. il n'y a pas de code permettant de filtrer)
j'ai tester ca me semble bien fonctionner de cette façon ca me semble vraiment bien je te redis ca merci
 
Nouvelle version qui permet de selectionner différents critères puur filtrer la combo "immat"
Bonjour

merci pour ton aide
je me suis aperçu que je ne pouvais pas faire un "=max" sur les kilométrage cela ne fonctionne pas si j'utilise le tableau de saisi, par contre si je rentre manuellement dans la case cela fonction a tu une astuce pour palier au problème
(exemple ligne 50 colonne L
merci
 

Pièces jointes

Hello

le problème intervient au moment de l'enregistrement de l'intervention
le code associé au bouton enregistre le textbox kilométrage sur la feuille SANS formater le contenu..=> il enregistre donc par défaut sous forme de texte (d'ou le nom. textbox)
quand tu cliques manuellement dans la cellule.. excel reconnait le contenu comme un nombre et le converti automatiquement==> la fonction max est ainsi capable de te donner le résultat

solution: formater au moment de l'enregistrement. (cdbl) de la meme manière que je l'avais fait pour la date (cdate)
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
442
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Réponses
7
Affichages
704
Réponses
21
Affichages
2 K
  • Question Question
Microsoft 365 Code VBA
Réponses
2
Affichages
461
Réponses
2
Affichages
805
Réponses
1
Affichages
385
Retour