Microsoft 365 modif code VBA

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

  • Classeur1.xlsm
    47.3 KB · Affichages: 5

vgendron

XLDnaute Barbatruc
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..
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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.
 

vgendron

XLDnaute Barbatruc
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
 

riv

XLDnaute Nouveau
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
 

riv

XLDnaute Nouveau
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
 

riv

XLDnaute Nouveau
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"
 

vgendron

XLDnaute Barbatruc
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

  • Classeur_Riv.xlsm
    57.5 KB · Affichages: 1
Dernière édition:

riv

XLDnaute Nouveau
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
 

riv

XLDnaute Nouveau
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

  • Classeur_Riv.xlsm
    55.4 KB · Affichages: 2

vgendron

XLDnaute Barbatruc
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

  • Classeur_Riv (1).xlsm
    56.1 KB · Affichages: 1

Discussions similaires

Réponses
7
Affichages
349
  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
320

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 186
dernier inscrit
Eliyass