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

Simplification d'une macro

liquoreux

XLDnaute Junior
Bonjour,

J'ai une macro qui marche bien mais que je souhaiterais simplifier :

En effet, la première série transforme en majuscule chaque Nom dans plusieurs colonnes réparties à plusieurs endroits. Je souhaiterais que cette transformation soit liée au nom des colonnes et non à leur emplacement dans le tableau :



Idem pour les lignes qui transforment en majuscules la première lettre du mot :




Idem pour les lignes qui vérifient que les valeurs rentrées sont bien des dates et qui indiquent les erreurs en rouge avec un message d'alerte. Stoppent la procédure s'il y a des erreurs :

Colonnes :
D : Date lettre candidat
E : Date lettre attente
F : Date reponse
R : Date annonce
U : Date entretien n°1
V : Date entretien n°2
W : Date entretien n°3
Y : Date denvoi
Z : Date de retour



Merci pour votre aide
 

Pièces jointes

  • Simplication_macro.xls
    31 KB · Affichages: 42
  • Simplication_macro.xls
    31 KB · Affichages: 45
  • Simplication_macro.xls
    31 KB · Affichages: 45

pierrejean

XLDnaute Barbatruc
Re : Simplification d'une macro

bonjour liquoreux

Ta macro simplifiée en Module2 sous le nom de Transfert1
De plus elle te permet de mettre tes colonnes ou tu le souhaites
Seule contrainte: Conserver les titres en ligne 1 et ne pas les modifier (si modification intervenir dans la macro)

NB:Je n'ais pas tout testé , si pb ne pas hesiter à revenir
 

Pièces jointes

  • Simplication_macro.zip
    17.5 KB · Affichages: 30

liquoreux

XLDnaute Junior
Re : Simplification d'une macro

J'ai essayé mais le contrôle des dates balaye aussi les titres, qui ne sont pas des dates, et cela pose un problème.
C'est la raison pour laquelle la macro initiale commence sur la 2ème ligne de chaque colonne concernée.
 

pierrejean

XLDnaute Barbatruc
Re : Simplification d'une macro

Re

OK

Remplacer

Code:
.....
Set c = Sheets("SAISIE").Rows(1).Find([COLOR=red]Liste3[/COLOR](n), LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
       Range(c,c.EntireColumn.Find(What:="*", SearchDirection:=xlPrevious)).SpecialCells(xlCellTypeConstants).Select
       For Each cell In Selection
.....

par

Code:
....
Set c = Sheets("SAISIE").Rows(1).Find([COLOR=red]Liste3[/COLOR](n), LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
       Range(c[COLOR=blue].Offset(1, 0[/COLOR][COLOR=blue])[/COLOR], c.[COLOR=blue]Offset(1, 0[/COLOR][COLOR=blue])[/COLOR].EntireColumn.Find(What:="*", SearchDirection:=xlPrevious)).SpecialCells(xlCellTypeConstants).Select
       For Each cell In Selection
......
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…