Raccourcir une macro
Résolu/Fermé
stitchbouck
Messages postés
129
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
7 novembre 2024
-
Modifié le 7 mai 2018 à 10:12
stitchbouck Messages postés 129 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 7 novembre 2024 - 22 mai 2018 à 10:55
stitchbouck Messages postés 129 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 7 novembre 2024 - 22 mai 2018 à 10:55
A voir également:
- Raccourcir une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Raccourcir une video - Guide
- Comment raccourcir un lien - Guide
- Macro logiciel - Télécharger - Organisation
7 réponses
jordane45
Messages postés
38308
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
7 mai 2018 à 10:24
7 mai 2018 à 10:24
Bonjour,
Déjà, pourquoi faire 3 boucles alors qu'elles sont identiques ?
Ensuite, le début de ton msgbox étant identique, tu pourrais le mettre dans une variable
Un truc du genre
Déjà, pourquoi faire 3 boucles alors qu'elles sont identiques ?
Ensuite, le début de ton msgbox étant identique, tu pourrais le mettre dans une variable
Un truc du genre
Dim msgStart as String Dim msg2 as String Dim sh as WorkSheet Set Sh = Sheets("Compteur électrique") msgStart = "Erreur : relevé 'Compteur électrique' inférieur au précédent." & Chr(10) & "En colonne " msg2 = "Vérifiez et modifiez sur feuille 'Ordre de relevé'" & "en colonne " For i = 6 To Range("A65536").End(xlUp).Row If IsNumeric(Sh.Cells(i - 1, 10)) And Sh.Cells(i, 10) <> "" And Sh.Cells(i, 10) < Sh.Cells(i - 1, 10).Value Then MsgBox (msgStart & "10" & Chr(10) & msg2 & "27" & "puis relancez le transfert de donnée. ") End If If IsNumeric(Sh.Cells(i - 1, 11)) And Sh.Cells(i, 11) <> "" And Sh.Cells(i, 11) < Sh.Cells(i - 1, 11).Value Then MsgBox (msgStart & "11" & Chr(10) & msg2 & "28" & "puis relancez le transfert de donnée. ") End If If IsNumeric(Sh.Cells(i - 1, 12)) And Sh.Cells(i, 12) <> "" And Sh.Cells(i, 12) < Sh.Cells(i - 1, 12).Value Then MsgBox (msgStart & "12" & Chr(10) & msg2 & "29" & "puis relancez le transfert de donnée. ") End If Next
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 7 mai 2018 à 11:58
Modifié le 7 mai 2018 à 11:58
Bonjour,
peut-^tre avec une macro parametrée
mais il m'est impossible de vérifier n'ayant pas le classeur sous les yeux
ta ligne de code pourrait être plus concise (et donc lisible) en utilisant les blocs
peut-^tre avec une macro parametrée
Option Explicit
'------------------------------------------------
Sub vérifier_compteurs()
Dim Colonne As Byte
For Colonne = 10 To 12 (12? etc)
Call analyser_compteur(Colonne)
Next
End Sub
Sub analyser_compteur(Col)
Dim i As Integer
For i = 6 To Range("A65536").End(xlUp).Row
If IsNumeric(Sheets("Compteur électrique").Cells(i - 1, Col)) And Sheets("Compteur électrique").Cells(i, Col) <> "" And Sheets("Compteur électrique").Cells(i, Col) < Sheets("Compteur électrique").Cells(i - 1, Col).Value Then
MsgBox ("Erreur : relevé 'Compteur électrique' inférieur au précédent." & Chr(10) & "En colonne " & Col & Chr(10) & "Vérifiez et modifiez sur feuille 'Ordre de relevé'" & "en colonne " & Col + 17 & "puis relancez le transfert de donnée. ")
End If
Next
End Sub
mais il m'est impossible de vérifier n'ayant pas le classeur sous les yeux
ta ligne de code pourrait être plus concise (et donc lisible) en utilisant les blocs
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
7 mai 2018 à 12:07
7 mai 2018 à 12:07
stitchbouck
Messages postés
129
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
7 novembre 2024
2
7 mai 2018 à 14:35
7 mai 2018 à 14:35
Waouh ! merci à tous !
je décortique tout ça, je teste dans mon classeur et reviens vers vous !!
encore merci :)
je décortique tout ça, je teste dans mon classeur et reviens vers vous !!
encore merci :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
stitchbouck
Messages postés
129
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
7 novembre 2024
2
7 mai 2018 à 16:18
7 mai 2018 à 16:18
Je me demandais pourquoi dans la msgbox vous mettiez "col +17". Et j'ai compris, mais la feuille "ordre de donnée" n'a pas toujours des colonnes qui se suivent (dsl, je n'avais pas pensé à ce point important). Ici on a 27 28 29 , mais pour d'autres c'est complètement disparate, donc "col +17" ne fonctionne plus.
J'en conclue que c'est la réponse de Jordane qui me convient le plus, car il faut malgré tout indiquer la colonne nominativement.
J'aimerai envoyer un extrait du fichier pour que ça soit plus clair, mais je n'arrive pas à trouver comment on fait... ?
J'en conclue que c'est la réponse de Jordane qui me convient le plus, car il faut malgré tout indiquer la colonne nominativement.
J'aimerai envoyer un extrait du fichier pour que ça soit plus clair, mais je n'arrive pas à trouver comment on fait... ?
jordane45
Messages postés
38308
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
7 mai 2018 à 17:59
7 mai 2018 à 17:59
Tu peux le déposer sur un site comme cijoint
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
stitchbouck
Messages postés
129
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
7 novembre 2024
2
7 mai 2018 à 19:10
7 mai 2018 à 19:10
ha super merci ! je le dépose mercredi alors.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
7 mai 2018 à 18:09
7 mai 2018 à 18:09
Je t'ai répondu en te faisant remarquer que tu m'avais bossé pour rien mais le dénommé Jordane, tout imbu de sa médaille de modérateur, l'a censuré
jordane45
Messages postés
38308
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
7 mai 2018 à 19:09
7 mai 2018 à 19:09
Il y a des façons de repondre qui passent... d'autres non.
Si ma façon de faire ne te plaît pas, tu peux venir en mp en discuter.
Si ma façon de faire ne te plaît pas, tu peux venir en mp en discuter.
stitchbouck
Messages postés
129
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
7 novembre 2024
2
7 mai 2018 à 19:13
7 mai 2018 à 19:13
Pour rien ??? ben non... je n'avais pas penser qu'on pouvait faire ce que tu m'as donné (Sub vérifier_compteurs()).
Sois bien sur qu'à mon niveau limité, toute aide de ce type me fait avancer !!
alors, oui, il manquait un paramètre, d'importance qui plus est, mais rien n'est jeté : ça me servira probablement ailleurs.
Donc, merci à vous deux pour ce beau coup de main :)
Sois bien sur qu'à mon niveau limité, toute aide de ce type me fait avancer !!
alors, oui, il manquait un paramètre, d'importance qui plus est, mais rien n'est jeté : ça me servira probablement ailleurs.
Donc, merci à vous deux pour ce beau coup de main :)
stitchbouck
Messages postés
129
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
7 novembre 2024
2
22 mai 2018 à 10:55
22 mai 2018 à 10:55
Bonjour,
j'espère que vous avez passé un agréable mois de mai !! :)
https://www.cjoint.com/c/HEwiPGsVIVD
Ci-joint le lien vers le fichier entier pas encore modifier par vos remarques. j'ai bien compris que je pouvais simplifier la lecture au moins par des déclarations pour simplifier le nom des feuilles...
Si vous voyez d'autres simplification, je suis preneur !!
Merci à vous et bonne journée !
j'espère que vous avez passé un agréable mois de mai !! :)
https://www.cjoint.com/c/HEwiPGsVIVD
Ci-joint le lien vers le fichier entier pas encore modifier par vos remarques. j'ai bien compris que je pouvais simplifier la lecture au moins par des déclarations pour simplifier le nom des feuilles...
Si vous voyez d'autres simplification, je suis preneur !!
Merci à vous et bonne journée !
7 mai 2018 à 12:04