Ecriture VBA trop longue

  • Initiateur de la discussion Initiateur de la discussion eduraiss
  • 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 !

eduraiss

XLDnaute Accro
Bonjour le forum

voila j'ai un problème avec l'ecriture en VBA, le code est trop lon et je dois repasser a la ligne mais la je n'y arrive pas voici le bout de code


If cel = "SAVARY P" And (cel.Offset(0, 2 - Col) <> "APPRO FRUIT F10" Or cel.Offset(0, 2 - Col) = "APPRO FRUIT F9" Or cel.Offset(0, 2 - Col) = "APPRO FRUIT L3" Or cel.Offset(0, 2 - Col) = "APPRO FRUIT M6" Or cel.Offset(0, 2 - Col) = "APPRO FRUIT M7" Or cel.Offset(0, 2 - Col) = "APPRO FRUIT M8" Or cel.Offset(0, 2 - Col) = "APPRO FRUIT RM" Or cel.Offset(0, 2 - Col) = "CARTONS RM" Or cel.Offset(0, 2 - Col) = "CE D'EQUIPE DEC" Or cel.Offset(0, 2 - Col) = "CE D'EQUIPE F10" Or cel.Offset(0, 2 - Col) = "CE D'EQUIPE F9" Or cel.Offset(0, 2 - Col) = "CE D'EQUIPE M15" Or cel.Offset(0, 2 - Col) = "CE D'EQUIPE M17" Or cel.Offset(0, 2 - Col) = "CE D'EQUIPE M5" Or cel.Offset(0, 2 - Col) = "CE D'EQUIPE M7" Or cel.Offset(0, 2 - Col) = "CE D'EQUIPE M8" Or cel.Offset(0, 2 - Col) = "EMBALLAGE F10" Or cel.Offset(0, 2 - Col) = "EMBALLAGE F10" Or cel.Offset(0, 2 - Col) = "EMBALLAGE F10" Or cel.Offset(0, 2 - Col) = "EMBALLAGE F10" Or cel.Offset(0, 2 - Col) = "EMBALLAGE F10" Or cel.Offset(0, 2 - Col) = "EMBALLAGE F10") Then
MsgBox " Poste interdit à SAVARY P!"
End If

Ce code interdit la personne d'être positionné a certains endroit

Mes questions comme faire pour repasser a la ligne ou comment simplifier ce code

Merci a vous
 
Re : Ecriture VBA trop longue

Bonjour le forum et a toi Roland

Merci une nouvelle fois pour ta réponse et pour ton aide, ton idée de mettre les exceptions dans une feuille est très intéressantes voir mieux et beaucoup plus facile a intégré que par l'écriture dans le code
en faisant tourner la moulinette, je vois que les personnes sont supprimer "", il ne faut surtout pas, m'avertir suffit après soit on laisse la personne ou on la déplace
il me faut aussi la possibilité de pouvoir déplacer plusieurs cellule a la fois
je joins le fichier eric2.1 modifier pour que tu vois, comment le code réagit c'est en gros ce qu'il me faudrait
Je déplace en même temps 4 cellules SAVARY P, TITI, CLAVAUD G, TUTU

Voir si tu as une solution

Cordialement
 

Pièces jointes

Re : Ecriture VBA trop longue

bonjour

tu peux toujours reprendre le fichier, j'ai enlevé le supprimer ""

IMPORTANT ! pour que je m'y retrouve il faut suivre avec le fichier que je t'ai modifié !
sinon ce n'est plus possible !
pour ne pas se retrouver à chaque fois avec le fichier de base !
car si je fais des rajoutes c'est sur la base des modif déjà faites !
afin de garder la structure du classeur !

pour ce qui est de ton fichier j'ai fais des essais mais il ne se passe rien !?
et je ne vois pas trace de code pour recopier ou déplacer des cellules !?

Question concernant les cellules à déplacer:
1' est-ce que les noms concernés par ces cellules peuvent être divers !? comme pour les exceptions !?
2' qu'elles sont les cellules à déplacer ?
3' ou déplacer les cellules ?
4' qu'elles sont les conditions ?

Roland
 

Pièces jointes

Re : Ecriture VBA trop longue

Re

ok roland je te remettre ton fichier ce qui est normale
1 les noms concernées par ses cellules peuvent être divers soit dans la feuille exception ou pas
2 les cellules a déplacer sont elles aussi diverses, je déplace les noms des personnes sur les colonne C a la colone J mais pas en colonne D ,F,H ce sont les heures qui sont positionne dans ses colonnes

3 L'alerte ne doit être que sur les colonne C ,E ,G pas plus

4 les conditions doivent être que si la personnes se retrouve sur la ligne ou elle ne doit pas être j'ai un alerte, sa c'est OK, si je déplace le groupe de cellule si dessous (voir ton fichier) je dois avoir 2 alertes, si je positionne le groupe sur emballage L3 alerte "LILI" et alerte "LULU"
ERIC
EMILIE
LILI
LULU
Merci encore pour ta patience
 

Pièces jointes

Re : Ecriture VBA trop longue

Re

merci encore une fois Roland,j'ai mis le code dans ma feuille cela a l'air de fonctionner vraiment trés bien sauf

Dans la feuille exception, j'ai rajouter des personnes (création de colonne) et la il bug a chaque fois que je veux déplacer ses personnes
Il doit y avoir un petit truc, mais je n'ai pas trouver.

Cordialement
 
Re : Ecriture VBA trop longue

re

il aurait joindre le fichier pour que je vois !?
mais il ne peut pas y avoir de bug dans la feuille Exception puisqu'elle n'a pas de code !
si tu mets le même format de colonne que les autres il n'y a aucun problème !
qu'appelles tu bug ? que se passe t'il exactement !

Roland
 
Re : Ecriture VBA trop longue

Re
je pense avoir compris, pas de problème pour les colonnes, le truc est que si tu renseigne qu'un poste sous le oui ou le non dans la feuille exception par exemple

TOTO
oui
EMBALLAGE L3

le nom TOTO bug si tu veux le déplacer

Merci
 
Re : Ecriture VBA trop longue

re

voilà c'est arrangé !

il s'agit d'une méthode du genre Liste = Range(????)
mais si le Range() ne contient qu'une seule cellule et que l'on fait
For I = Lbound(Liste) To Ubound(Liste) <<<<<< ça bug !?
chose que je ne savais encore pas !? comme quoi on en apprend tous les jours !

j'ai essayé un peu tout et ça fonctionne.

tu testes et tu me dis quoi !?

Roland
 

Pièces jointes

Re : Ecriture VBA trop longue

Re

j'avais répondu tout a l'heure mais le site été en maintenance

sa a l'air d'être bon, je testerais mieux demain

tu dit que tu ne sais pas tout c'est surement vrai , mais je crois que tu sais beaucoup, beaucoup de chose.

Un grand merci a toi et a ceux qui ont participé

Cordialement
 
Re : Ecriture VBA trop longue

Bonjour le forum et a toi Roland

J'ai gratté pas mal depuis ce matin de bonne heure pour voir si il y avait un problème, je n'ai rien trouvé

Un petit truc Roland sur la feuille exception (je joins le fichier),j'ai rajouté des colonnes avec des 1 je voudrais te demandé si il est possible de faire une modification du code pour prendre en compte ce paramétrè.

L'idée est de mettre tous les postes sous le noms des personnes et de mettre 1 si la personne peut aller ou ne peut aller a ce poste un exemple
Clavaud G
non non
CE D'EQUIPE F9
CE D'EQUIPE M15
CE D'EQUIPE M17 1
CE D'EQUIPE M5 1
CE D'EQUIPE M7 1
CE D'EQUIPE M8 1
EMBALLAGE F10
Ici Clavaud G ne peut pas aller ou il y a des 1

C'est juste une question car sur 400 personnes il y a au moins 40 personnes qui ont des handicaps et les poste de l'usine sont au nombres de 100
Répond moi si cela est possible, mais pas de problème si tu ne peux pas ou si c'est trop long je me débrouille avec ce que j'ai, ce qui est déjà très bien
Peut être aussi que le code va fonctionne moins vite enfin je ne sais pas
Cordialement
 

Pièces jointes

Re : Ecriture VBA trop longue

bonjour

dans ce cas si tous les postes sont mis idem sous tous les noms
il est inutile de le répéter chaque fois !

on pourrait mettre tous les postes dans la première colonne(A)
puis les colonnes suivantes avec les noms et dessous un signe quelconque exemple(x)
qui indiquerait que ce poste lui est interdit !

j'y regarde dans ce sens !

Roland
 
- 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
Retour