Excel Macro traitement de numéros (suite) :)
Résolu/Fermé
informatifien
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
-
30 déc. 2009 à 13:30
informatifien Messages postés 741 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 10 janvier 2016 - 5 janv. 2010 à 08:41
informatifien Messages postés 741 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 10 janvier 2016 - 5 janv. 2010 à 08:41
A voir également:
- Excel Macro traitement de numéros (suite) :)
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
32 réponses
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
31 déc. 2009 à 14:30
31 déc. 2009 à 14:30
Bonjour,
Comme expliqué au poste 25 dont voici la procédure:
Salutations.
Jean-Pierre
Comme expliqué au poste 25 dont voici la procédure:
Sub CherchePremier(numserie) Dim y As Long 'trier la liste Columns("A:A").Sort Key1:=Columns(1), Order1:=xlAscending, Header:=xlGuess For y = 1 To WorksheetFunction.Count(Columns(1)) If Cells(y, 1) <> numserie + (y - 1) Then z = numserie + (y - 1) Exit Sub End If Next y End Sub--
Salutations.
Jean-Pierre
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
31 déc. 2009 à 15:14
31 déc. 2009 à 15:14
Bonjour,
Petite explication pas par pas de la procédure (P = procédure et E = explication) :
P.- Sub CherchePremier(numserie)
E.- nom de la procédure avec argument (numserie) qui récupère le numéro de série de la valeur de la UserForm
P.- Columns("A:A").Sort Key1:=Columns(1), Order1:=xlAscending, Header:=xlGuess
E.- Trier la colonne pour l’ordonner et éliminer les vides éventuels
P.- For y = 1 To WorksheetFunction.Count(Columns(1))
E.- Boucle sur la colonne pour la plage de valeur présente la dernière ligne est trouvé avec ; [WorksheetFunction.Count(Columns(1))]
P.- If Cells(y, 1) <> numserie + (y - 1) Then
z = numserie + (y - 1)
Exit Sub
End If
E.- Contrôle si le numéro de la colonne est différent du compteur
Si oui alors on attribue le numéro à la variable [Z] qui sera reprise dans la procédure pour la UserForm.et le [Exit Sub] sort de la procédure puisque le numéro est trouvé
Si non le [Next y] renvoie au début de la boucle.
Pour finir End Sub.
Petite explication pas par pas de la procédure (P = procédure et E = explication) :
P.- Sub CherchePremier(numserie)
E.- nom de la procédure avec argument (numserie) qui récupère le numéro de série de la valeur de la UserForm
P.- Columns("A:A").Sort Key1:=Columns(1), Order1:=xlAscending, Header:=xlGuess
E.- Trier la colonne pour l’ordonner et éliminer les vides éventuels
P.- For y = 1 To WorksheetFunction.Count(Columns(1))
E.- Boucle sur la colonne pour la plage de valeur présente la dernière ligne est trouvé avec ; [WorksheetFunction.Count(Columns(1))]
P.- If Cells(y, 1) <> numserie + (y - 1) Then
z = numserie + (y - 1)
Exit Sub
End If
E.- Contrôle si le numéro de la colonne est différent du compteur
Si oui alors on attribue le numéro à la variable [Z] qui sera reprise dans la procédure pour la UserForm.et le [Exit Sub] sort de la procédure puisque le numéro est trouvé
Si non le [Next y] renvoie au début de la boucle.
Pour finir End Sub.
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
30 déc. 2009 à 13:50
30 déc. 2009 à 13:50
Ce que tu viens de décrire n'est pas du tout le ou les m^mes problèmes...
Aurait on bosser pour rien ?
Aurait on bosser pour rien ?
informatifien
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
92
30 déc. 2009 à 14:00
30 déc. 2009 à 14:00
non du tous les autres problèmes été le début de mon projet et concerné le meme fichier, mais je m'y été mal pris là je résume le projet le reste est bel est bien réglé grace à vous tous, en faite j'ai tendance à attaquer un truc je me dis comment je fais.... hop j'ai une idée en tete, j'attaque je tombe sur un "os" et je me trouve bloqué j'essaye de le resoudre sur ccm et en attendant je part sur autre chose et je me retrouve bloqué encore une fois j'essaye de ne pas trop vous embéter alors je pose des problèmes au compte goutte alors que je devrais exposer mon projet et demander conseil avant d'attquer comme me la soufflé pijaku. c'est que j'apprend vraiment à l'arrache le VBA, je n'ai suivi aucun cours, je n'ai comme base les seules macro que j'ai dejà faite en partie sur CCM, donc meme si parfois je comprends certain cheminement d'autres me parraisse incomprehenssible. . . .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
30 déc. 2009 à 14:23
30 déc. 2009 à 14:23
Donc, on a bien bossé pour rien...malgré les conseils de Pijaku.
Prend pas ca mal, mais tu me fais penser à une abeille contre la vitre....
Si tu veux apprendre commence par des problèmes simples et progresse petit pas par petits pas
si j'ai compris(...) ta demande
TU écris un nombre (peu importe comment)
la partie entière du nombre/1000 te donne le préfixe de ton onglet
les noms d'onglet étant du texte il faut transformer le nombre en "strIng"
sheets(cstr(int(tonnombre/1000))*1000)
la partie décimal du nombre cad le modulo 1 du nombre te donne la ligne du nombre -1 (ligne1 on a 12000 par ex)
donc la ligne est déterminée par
(tonnombre/1000 MOdulo 1)+1
lig=((tonnombre/1000) MOD 1)+1
et tu as donc
sheets(cstr(int(tonnombre/1000))*1000).cells(lig,1)=tonnombre
non testé
Prend pas ca mal, mais tu me fais penser à une abeille contre la vitre....
Si tu veux apprendre commence par des problèmes simples et progresse petit pas par petits pas
si j'ai compris(...) ta demande
TU écris un nombre (peu importe comment)
la partie entière du nombre/1000 te donne le préfixe de ton onglet
les noms d'onglet étant du texte il faut transformer le nombre en "strIng"
sheets(cstr(int(tonnombre/1000))*1000)
la partie décimal du nombre cad le modulo 1 du nombre te donne la ligne du nombre -1 (ligne1 on a 12000 par ex)
donc la ligne est déterminée par
(tonnombre/1000 MOdulo 1)+1
lig=((tonnombre/1000) MOD 1)+1
et tu as donc
sheets(cstr(int(tonnombre/1000))*1000).cells(lig,1)=tonnombre
non testé
informatifien
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
92
30 déc. 2009 à 14:34
30 déc. 2009 à 14:34
euuuuuh non vous avez pas bossé pour rien j'ai résolu certain des problème et par contre oui le dernier code que tu as posté est arrivé trop tard j'avai "retourné ma veste " à la manière de jacques dutronc lol et pris la décision de faire les choses à la main mais j'ai gardé ton code car je risque de devoir traité une autre extreaction.
pour ce que tu viens de me dire euuuh je t'avourai que j'ai pas compris grand chose, exépté le fait que mon post n'est pas plus clair que les autres :s, car tu n'as (et ne le prned pa smal non plus) apparement pas saisi le truc, et donc histoire de ne pas vous faire bosser pour des pruneaux et de ne pas me retrouver ecrasé sur un carreaux tel une abeille :) je pense que je vais poster le fichier en question ce soir, vous aurez ainsi tout le plaisir de mieux saisir mon objectif. . .
Le menu se lance avec un ptit Ctrl+m je vais mettre un onglet "mode d'emploi" pour refaire un exposé de ce que je recherche . . .
Pour ce qui est de l'apprentissage, ben j'essaye de faire ce qu'on me demande ma situation est "complexe" j'était dans la mécanique, je suis réformé donc dans les bureaux, et ayant fais une formation de technicien d'assistance informatique mes employeur pense que je suis !!""INFORMATICIEN""!! donc je sais faire un jeux video,un logiciel,construire un CPU aussi tant qu'on y est enfin bref . . .plein de bonne volonté j'essaye comme je peux d'arriver à faire les outils qu'on me demande mais je reste conscient que sans CCM (vous) . . . .peux de ces outils marcherai c'est pourquoi je remerci souvent et encore toute la communauté CCM
pour ce que tu viens de me dire euuuh je t'avourai que j'ai pas compris grand chose, exépté le fait que mon post n'est pas plus clair que les autres :s, car tu n'as (et ne le prned pa smal non plus) apparement pas saisi le truc, et donc histoire de ne pas vous faire bosser pour des pruneaux et de ne pas me retrouver ecrasé sur un carreaux tel une abeille :) je pense que je vais poster le fichier en question ce soir, vous aurez ainsi tout le plaisir de mieux saisir mon objectif. . .
Le menu se lance avec un ptit Ctrl+m je vais mettre un onglet "mode d'emploi" pour refaire un exposé de ce que je recherche . . .
Pour ce qui est de l'apprentissage, ben j'essaye de faire ce qu'on me demande ma situation est "complexe" j'était dans la mécanique, je suis réformé donc dans les bureaux, et ayant fais une formation de technicien d'assistance informatique mes employeur pense que je suis !!""INFORMATICIEN""!! donc je sais faire un jeux video,un logiciel,construire un CPU aussi tant qu'on y est enfin bref . . .plein de bonne volonté j'essaye comme je peux d'arriver à faire les outils qu'on me demande mais je reste conscient que sans CCM (vous) . . . .peux de ces outils marcherai c'est pourquoi je remerci souvent et encore toute la communauté CCM
informatifien
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
92
30 déc. 2009 à 20:18
30 déc. 2009 à 20:18
re bonsoir voilà mon fichier j'espere qu'il vous aidera plus que mes explication. . . .
https://www.cjoint.com/?mEustuddZj
https://www.cjoint.com/?mEustuddZj
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
30 déc. 2009 à 20:36
30 déc. 2009 à 20:36
BON ALLEZ C PARTI JE REGARDE CA§§
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
30 déc. 2009 à 21:13
30 déc. 2009 à 21:13
ca avance g presque fini!!!!
informatifien
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
92
30 déc. 2009 à 21:37
30 déc. 2009 à 21:37
nan deja ???? pfiou j'en attendais pas temps ;)
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
30 déc. 2009 à 21:53
30 déc. 2009 à 21:53
j suis dessus ya d petit bugg!!
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
30 déc. 2009 à 22:10
30 déc. 2009 à 22:10
Bonjour,
J'ai juste donné un oeil en diagonal et il ressort que les nombres disponibles dans une série semblent correctes.
Par contre la recherche du premier numéro disponible est incorrecte : exemple avec la série 8000, je peux sans autre obtenir des nouveaux numéros de 9000, 9001, 9002, et se qui est faux.
Je ne peux pas en faire plus pour l'instant.
J'ai juste donné un oeil en diagonal et il ressort que les nombres disponibles dans une série semblent correctes.
Par contre la recherche du premier numéro disponible est incorrecte : exemple avec la série 8000, je peux sans autre obtenir des nouveaux numéros de 9000, 9001, 9002, et se qui est faux.
Je ne peux pas en faire plus pour l'instant.
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
30 déc. 2009 à 22:46
30 déc. 2009 à 22:46
ca y est g fini!!!!
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
30 déc. 2009 à 22:53
30 déc. 2009 à 22:53
voila :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijEjXoVr2.xls
je t mis un bouton sur chaque feuille pour executer la macro1 je me suis arreter au 18
voila bonne nuit dis moi si tu est content?
http://www.cijoint.fr/cjlink.php?file=cj200912/cijEjXoVr2.xls
je t mis un bouton sur chaque feuille pour executer la macro1 je me suis arreter au 18
voila bonne nuit dis moi si tu est content?
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
30 déc. 2009 à 23:27
30 déc. 2009 à 23:27
Bonsoir,
Je me suis amusé un peu, je vous laisse la découverte : https://www.cjoint.com/?mExAAHO1nC
Je me suis amusé un peu, je vous laisse la découverte : https://www.cjoint.com/?mExAAHO1nC
informatifien
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
92
31 déc. 2009 à 07:48
31 déc. 2009 à 07:48
Re bonjour le pingou (j'ai répondu à l'autre post), et bonjour moiced59,
Euh Le Pingou pour votre post N°10 je ne comprend pas j'ai testé chez moi avant d'envoyer et celà marchait et me donnai 8001 en premier numéro dispo. . . donc moi pas comprendre :s après je sais que j'avais le problème quand la cellule A1 été vide ma macro buguée bien entendu. . . .
Donc pour ce qui est de vos essais étant donné que je suis au travail et que je ne peux pas cjointer et que ce soir j'ai une ptite fete prevu ;) ( vodka malabard,ricard,champagne,bière et je crois qu'il y a mangé. . . lol) je regarderai ça en 2010 maintenant mais je vous remerci déjà à l'avance car je ne doute pas de trouver 2 fichiers fonctionnels et n'aurait plus qu'à choisir lequel me convient le mieux ou prendre un peu des 2 qui sait. . ..
Je vous remerci pour toute l'aide apportée en 2009, vous souhaite un bon réveillon et n'oubliez pas: boire ou conduire il faut choisir moi conduire je trouve ça fatiguant :)) de plus l'alcool est un ennemi fuire l'ennemi c'est lâche . . . lool
Euh Le Pingou pour votre post N°10 je ne comprend pas j'ai testé chez moi avant d'envoyer et celà marchait et me donnai 8001 en premier numéro dispo. . . donc moi pas comprendre :s après je sais que j'avais le problème quand la cellule A1 été vide ma macro buguée bien entendu. . . .
Donc pour ce qui est de vos essais étant donné que je suis au travail et que je ne peux pas cjointer et que ce soir j'ai une ptite fete prevu ;) ( vodka malabard,ricard,champagne,bière et je crois qu'il y a mangé. . . lol) je regarderai ça en 2010 maintenant mais je vous remerci déjà à l'avance car je ne doute pas de trouver 2 fichiers fonctionnels et n'aurait plus qu'à choisir lequel me convient le mieux ou prendre un peu des 2 qui sait. . ..
Je vous remerci pour toute l'aide apportée en 2009, vous souhaite un bon réveillon et n'oubliez pas: boire ou conduire il faut choisir moi conduire je trouve ça fatiguant :)) de plus l'alcool est un ennemi fuire l'ennemi c'est lâche . . . lool
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
31 déc. 2009 à 09:41
31 déc. 2009 à 09:41
Bonjour :
En réponse à ceci : Euh Le Pingou pour votre post N°10 je ne comprends pas j'ai testé chez moi avant d'envoyer et cela marchait et me donnai 8001 en premier numéro dispo . . . donc moi pas comprendre : s
Moi non plus je ne comprends pas pourquoi vous ne poursuivez pas le test plus loin. Ainsi vous constateriez par vous-même et comprendriez l’avertissement de mon message.
Pour poursuivre dans se sens, sauf erreur de ma part, la proposition de moiced59 ne tiens pas compte des numéros qui peuvent manquer dans une série.
En réponse à ceci : Euh Le Pingou pour votre post N°10 je ne comprends pas j'ai testé chez moi avant d'envoyer et cela marchait et me donnai 8001 en premier numéro dispo . . . donc moi pas comprendre : s
Moi non plus je ne comprends pas pourquoi vous ne poursuivez pas le test plus loin. Ainsi vous constateriez par vous-même et comprendriez l’avertissement de mon message.
Pour poursuivre dans se sens, sauf erreur de ma part, la proposition de moiced59 ne tiens pas compte des numéros qui peuvent manquer dans une série.
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
31 déc. 2009 à 09:49
31 déc. 2009 à 09:49
bonjour
j'ai regarde ton fichier le pingou tu as fais koi?
j'ai regarde ton fichier le pingou tu as fais koi?
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
31 déc. 2009 à 10:27
31 déc. 2009 à 10:27
Bonjour moiced59,
C'est quoi la question ?
C'est quoi la question ?
informatifien
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
92
31 déc. 2009 à 09:52
31 déc. 2009 à 09:52
pour les fichiers je ne pourrait regarder que demain ou après demain, pour les test je n'ai pas voulu aller trop vite, comme je l'ai dis je part un peu trop vite sur les projets et veux tout faire en meme temps. . .
et ce par ce que je n'ai aucune bonne base, j'ai demandé une formation à mon taf car je trouve le VBA intéréssant mais dur. . . .que faite vous tous dans la vie? si ce n'est pas indiscret du VBA toute la journée dans une SSII ou dans une société?
et ce par ce que je n'ai aucune bonne base, j'ai demandé une formation à mon taf car je trouve le VBA intéréssant mais dur. . . .que faite vous tous dans la vie? si ce n'est pas indiscret du VBA toute la journée dans une SSII ou dans une société?
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
31 déc. 2009 à 09:58
31 déc. 2009 à 09:58
re
moi je travail ds une usine automobile service info mais je ne fé pas du vba tte la journée!!!!!
et toi tu fé koi?
moi je travail ds une usine automobile service info mais je ne fé pas du vba tte la journée!!!!!
et toi tu fé koi?