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

XL 2019 Fonction If et Boucle For

Cesar1275

XLDnaute Occasionnel
Bonjour à tous

Dans le fichier en PJ la colonne E extrait le dernier numéro de chaque cellule de la colonne A.

Je voudrais faire en sorte que si ce numéro est pair, la macro écrive "pair" dans la cellule et même chose pour les chiffres impair.

J'ai déjà fait une macro intitulée "pair-impair" dans le module 2 mais je n'arrive pas à la faire fonctionner ...

Merci d'avance pour votre aide !
 

Pièces jointes

  • Analyse des trains.xlsx
    15.5 KB · Affichages: 8

sylvanu

XLDnaute Barbatruc
Supporter XLD
ou par macro avec :
VB:
Sub Extrait()
    Application.ScreenUpdating = False
    DL = Range("A65500").End(xlUp).Row
    Range("C2:C" & DL).FormulaR1C1 = "=MID(RC[-2],4,1)"
    Range("D2:D" & DL).FormulaR1C1 = "=MID(RC[-3],3,1)"
    Range("E2:E" & DL).FormulaR1C1 = "=IF(ISEVEN(RC[-4]),""Pair"",""Impair"")"
    Range("C2:E" & DL).Value = Range("C2:E" & DL).Value
End Sub
 

Pièces jointes

  • Analyse des trains (1).xlsm
    21.1 KB · Affichages: 3

Cesar1275

XLDnaute Occasionnel
Bonjour Cesar,
Essayez simplement :
VB:
=SI(EST.PAIR(A2);"Pair";"Impair")
il est inutile d'extraire le dernier chiffre car si celui ci est pair alors le nombre est pair.
Vous avez totalement raison ! Comment se compliquer la vie inutilement

Merci pour votre aide

Il y a autre chose que j'aimerais faire mais c'est beaucoup plus compliqué.


En fait les 2 dernier chiffres du numéro de train correspondent à un horaire.

ex : pour le 145872, le 72 correspond à 72% de 12H. Donc 12*0.72=8,64 H

Il faut ensuite faire (0,64/100)*60 = 38 min

Au final le 72 correspond à 8 h 38.

Pour savoir si le 8h38 correspond à la matinée ou à la soirée, il faut regarder le 3ème chiffre du numéro de train. Si le chiffre est 1,2, ou 3 c'est que c'est un train de matinée. Si le chiffre correspond à 5,7,8,6 ou 9 c'est un train de soirée.

Le 145872 correspond donc à un train de 20h38 (8h38pm en format 12h)

Serait-il possible de faire une macro calculant cet horaire svp ?

Merci d'avance !
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Pourquoi être aussi précis dans les horaires puisque tous les trains sont en retard ?

Pour me faire pardonner, une PJ avec les horaires en colonne F.
Pour les horaires je suis passé par cette fonction :
VB:
Function CalculHoraire(N)
    H = Val(Mid(N, Len(N) - 1)) * 0.12          ' Calcul heure en décimal
    M = Int(60 * (H - Int(H)))                  ' Calcul minutes
    H = Int(H)                                  ' Calcul Heure en entier
    If Val(Mid(N, 3, 1)) >= 5 Then H = H + 12   ' Calcul AM ou PM
    CalculHoraire = H & ":" & M                 ' Retour valeur en format HH:MM
End Function

Au fait j'ai vu une erreur en E34. C'est quoi ce train 569912/3 ? Je n'en tiens pas compte dans les macros. Que faire ?
 

Pièces jointes

  • Analyse des trains (2).xlsm
    24 KB · Affichages: 3

Cesar1275

XLDnaute Occasionnel
Si vous saviez à quel point c'est difficile de gérer les trains en fait c'est l'heure de passage à Invalide, ça nous permet de nous repérer plus facilement.

Merci beaucoup la fonction fonctionne parfaitement !

Pour ce qui est du 569912/3 vous pouvez effectivement ne pas le prendre en compte par c'est un train supprimé.

Bonne continuation
 

soan

XLDnaute Barbatruc
Inactif
Bonjour César, sylvanu,

tu as écrit : « Si vous saviez à quel point c'est difficile de gérer les trains »

je confirme : supposons que sur une voie donnée, un train est obligé de s'arrêter ; caténaire défectueux, moteur cramé, déraillement dû à une vitesse excessive (notamment dans une courbe), déraillement causé par un animal (sanglier ou cerf qui traverse la voie, au lieu de regarder gentiment passer les trains comme toute bonne vache qui se respecte, et qui rumine paisiblement son herbe), éboulement sur la voie, intempéries (foudre, grêlons, neige, verglas...), voiture ou camion en travers des rails sur un passage à niveau (paraît même qu'y'en a qui forcent la barrière qui s'est abaissée ! et c'est pas forcément des gens suicidaires, mais seulement des gens un peu trop pressés... voir spoiler ci-dessous), signaux de voie défectueux, détecteurs de mobiles ou d'obstacles défectueux, dynamitage de la voie par les frères Dalton ou d'autres bandits de grand chemin, ou n'importe quel autre malencontreux impondérable ; dès lors, ce train va hélas retarder tous les autres trains qui devaient passer par la même voie (surtout s'il n'y a pas d'aiguillage à proximité) ; c'est même très fortement recommandé d'avertir les autres trains si on veut éviter de risquer un gros carambolage sur la voie ; si, si, ça peut exister ; c'est même déjà malheureusement arrivé, en voici des preuves : lien tragique n° 1 ; lien tragique n° 2 ; et en France aussi (hélas)


bien sûr, si le conducteur est ivre et / ou drogué, ça ne fait qu'aggraver son cas ! un p'tit joint ? oui, c'est certainement le plus sûr moyen d'rejoindre l'autre monde... si encore ça n'impliquait qu'eux ! mais quand c'est d'autres personnes qui sont les victimes de leur inconscience, c'est encore pire ! cortilolo, qui s'occupe de sécurité routière, pourra sûrement confirmer que ça arrive : un jeune conducteur qui est à la fois ivre et drogué ! (et parfois même sans permis !) ; certains n'hésitent pas à dire que c'est criminel, et c'est pas les estropiés ou les tués qui pourraient contredire cela !



NB : j'ai jamais conduit un train, sauf dans le jeu PC Microsoft Train Simulator ; la traversée des Montagnes Rocheuses est très sympa, surtout si on n'a pas pris assez d'élan pour grimper tout en haut du Col Marias (Marias Pass en anglais ; point culminant : 1588 m d'altitude) ; ou si au contraire on oublie d'freiner suffisamment et à temps dans la descente ; c'est bien dommage que Microsoft n'aie pas mis dans son jeu la ligne « Ferrovías Central » ! c'est au Pérou, et c'est long de 535 km ; le trajet complet est : Callao - Lima (la capitale) - le nœud ferroviaire de La Oroya - Huancayo (altitude 3271 m) ; au nœud La Oroya, ça va vers le nord-ouest jusqu'à Cerro de Pasco (altitude 4330 m, et même 4380 m dans le secteur de Yanacancha) ; vous ne connaissez pas cette ligne ? mais si, voyons, c'est dans la très belle BD de Tintin "Le Temple du Soleil", quand Tintin et le Capitaine Haddock veulent se rendre de la petite gare de Santa-Clara à Jauga (nom réel : Jauja) :



15.865 pieds = 4836 m ; 108 miles = 173,80 km ; à l'époque, c'était effectivement la ligne de chemin de fer la plus haute du monde ; maint'nant, depuis le 1er juillet 2006, le record est en Chine : c'est la ligne Qing-Zang de Pékin à Lhassa ; longueur de la ligne : 1.142 km ; compter plusieurs heures de trajet ; j'ose déjà pas imaginer le prix du billet aller simple, alors aller-retour ! point culminant : 5068m (gare de Tanggula, au Tibet) ; j'crois que pour réussir à atteindre une altitude plus élevée, faut suivre un entraînement de cosmonaute, comme Youri Gagarine.

j'ai une mauvaise nouvelle pour toi, (Jules) César : tu ne pourras jamais battre ce record ! en effet, le point le plus haut de France est le Mont Blanc, qui culmine à « seulement » 4.808,72 m ; même si t'importes en France la Cordillère des Andes, ce sera pas assez ! comment ? tu veux importer la chaîne de montagnes de l'Himalaya ? j'ai rien contre ; en tout cas, j'adore les trajets en train ; regarde, y'a même la piscine gratuite :



soan
 
Dernière édition:

Cesar1275

XLDnaute Occasionnel
Merci Soan pour ce retour auquel je ne m'attendais pas . Tu as effectivement bien compris l'invisible (pour les voyageurs) difficulté à faire circuler des trains sans accros ! Merci également pour ces informations fortes intéressantes que je ne connaissant pas (en même temps ça ne risque pas je travaille au RER...)
 

Discussions similaires

Réponses
4
Affichages
296
Réponses
21
Affichages
807
Réponses
20
Affichages
657
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…