Copier plusieurs cellules dans differentes feuilles
skopg
Messages postés
74
Statut
Membre
-
skopg Messages postés 74 Statut Membre -
skopg Messages postés 74 Statut Membre -
Bonsoir à tous je suis nouveau sur ce site et j'aimerais avoir votre aide pour :
dans ma feuil1 en colonne C j'ai des noms ex A,B,C,D,E,F, etc....., de C1 a C156, les autres feuilles sont renommées suivant les noms ; feuil2 A, Feuil3 B, Feuil4 C et ainsi de suite jusqu'à 156 noms différents.
Je fais un filtre dans la feuil1 pour sélectionner certains noms comment faire pour que les cellules D4:N4 feuil1 soient copiées dans chaque onglet respectif en B3:L3 par ex pour la première saisie.
Si dans le filtre il y a A, B, C, D, E copier ces cellules D4:N4 dans A, B, C, D, E........
Puis quand j'ai fini avec mes filtres dans ma feuil1 je retrouve tous les noms et les cellules D4:N4 remplies car sur mes différents filtres je fais un tirer pour compléter les cellules D4:N4.
Apres que tous les onglets soient complets une macro sur ma feuil1 doit me vider les cellules D4:N4 qui elles sont remplies pour tous les noms grâce a mon tirer ( copier/coller ).
Et pour une nouvelle entrée je remplis à nouveau D4:N4 et le cycle recommence mais bien sur ces nouvelles données sont copiées a la ligne suivante dans leur onglet respectif par ex si la 1ere ligne est b3:L3 pour une première entrée dans ce même onglet ce sera la ligne B4:L4. pour la deuxième saisie et puis B5:L5 et ainsi de suite.
Désolé d'être aussi long si besoin d'un fichier c'est possible.
dans ma feuil1 en colonne C j'ai des noms ex A,B,C,D,E,F, etc....., de C1 a C156, les autres feuilles sont renommées suivant les noms ; feuil2 A, Feuil3 B, Feuil4 C et ainsi de suite jusqu'à 156 noms différents.
Je fais un filtre dans la feuil1 pour sélectionner certains noms comment faire pour que les cellules D4:N4 feuil1 soient copiées dans chaque onglet respectif en B3:L3 par ex pour la première saisie.
Si dans le filtre il y a A, B, C, D, E copier ces cellules D4:N4 dans A, B, C, D, E........
Puis quand j'ai fini avec mes filtres dans ma feuil1 je retrouve tous les noms et les cellules D4:N4 remplies car sur mes différents filtres je fais un tirer pour compléter les cellules D4:N4.
Apres que tous les onglets soient complets une macro sur ma feuil1 doit me vider les cellules D4:N4 qui elles sont remplies pour tous les noms grâce a mon tirer ( copier/coller ).
Et pour une nouvelle entrée je remplis à nouveau D4:N4 et le cycle recommence mais bien sur ces nouvelles données sont copiées a la ligne suivante dans leur onglet respectif par ex si la 1ere ligne est b3:L3 pour une première entrée dans ce même onglet ce sera la ligne B4:L4. pour la deuxième saisie et puis B5:L5 et ainsi de suite.
Désolé d'être aussi long si besoin d'un fichier c'est possible.
A voir également:
- Copier plusieurs cellules dans differentes feuilles
- Comment faire un livret avec des feuilles a4 - Guide
- Excel additionner plusieurs cellules - Guide
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Regrouper plusieurs feuilles excel en une seule - Guide
14 réponses
Bonsoir
Oui un exemple allégé (une 20aine de lignes suffiront) et anonymé serait utile, tu le poste sur cjoint.com et tu reviens ici indiquer le lien fourni
Question : Est ce toujours les mêmes noms qui sont filtrés ensemble ? Si oui au lieu d'avoir à filtrer par nom il vaudrait peut être mieux ajouter une colonne avec une référence identique de groupe (1, 2 etc) ce qui permettra facilement de filtrer soit mieux de tout faire faire par la macro en indiquant simplement dans un Userform le groupe à renseigner et les valeurs à mettre de D à N
Dans l'attente
Cdlmnt
Oui un exemple allégé (une 20aine de lignes suffiront) et anonymé serait utile, tu le poste sur cjoint.com et tu reviens ici indiquer le lien fourni
Question : Est ce toujours les mêmes noms qui sont filtrés ensemble ? Si oui au lieu d'avoir à filtrer par nom il vaudrait peut être mieux ajouter une colonne avec une référence identique de groupe (1, 2 etc) ce qui permettra facilement de filtrer soit mieux de tout faire faire par la macro en indiquant simplement dans un Userform le groupe à renseigner et les valeurs à mettre de D à N
Dans l'attente
Cdlmnt
Bonjour Via55, déjà merci pour ta réponse oui je fais un tri pour toujours les mêmes noms parfois ils sont 10 parfois ils sont 5 ( tri par catégorie GR; E, S, C, etc j'ai des Elites ,des sportifs des coteurs etc....).
Je fais un fichier allégé comme demandé et tu feras le travail déjà fait à ce jour.
Je remplace les noms par des A,AA,B,BB,C,CC etc.
Du fait que je change les noms il est possible que les macros ne fonctionnent plus ( a voir )
Le bouton mise à zéro permet de revenir sur la feuil test complète en fait tu verras et si info supplémentaire pas de soucis.
Je fais un fichier allégé comme demandé et tu feras le travail déjà fait à ce jour.
Je remplace les noms par des A,AA,B,BB,C,CC etc.
Du fait que je change les noms il est possible que les macros ne fonctionnent plus ( a voir )
Le bouton mise à zéro permet de revenir sur la feuil test complète en fait tu verras et si info supplémentaire pas de soucis.
Re
Voilà la macro de transfert
Une fois la ligne transférée une croix est placée dans la dernière colonne de test (pour éviter de transférer une 2eme fois par erreur) et par MFC la ligne transférée se met alors en couleur dans test (j'ai fait le transfert des Elites et des Balladeurs pour essai)
Attention que les noms dans la liste et celui des feuilles correpondent bien sinon il y aura erreur
https://www.cjoint.com/?0JluQqFhdmb
Annotations dans la macro expliquant son déroulement
Pour effacer les données de test à la fin enregistres une macro en effaçant toutes les plages que tu veux , sans oublier celle des X, puis tu crées un nouveau bouton et tu lui affectes ta macro
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Voilà la macro de transfert
Une fois la ligne transférée une croix est placée dans la dernière colonne de test (pour éviter de transférer une 2eme fois par erreur) et par MFC la ligne transférée se met alors en couleur dans test (j'ai fait le transfert des Elites et des Balladeurs pour essai)
Attention que les noms dans la liste et celui des feuilles correpondent bien sinon il y aura erreur
https://www.cjoint.com/?0JluQqFhdmb
Annotations dans la macro expliquant son déroulement
Pour effacer les données de test à la fin enregistres une macro en effaçant toutes les plages que tu veux , sans oublier celle des X, puis tu crées un nouveau bouton et tu lui affectes ta macro
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Re,
Je suis un peu long pour te donner des nouvelles mais je dois remettre tous les noms dans chaque onglet respectif.
Et mettre dans la feuille classement dans les cellules C2, D2, E2, H2 et I2 les références avec le signe égal pour chaque nom afin de faire fonctionner la macro pour ce dit classement.
Bien à toi
Je suis un peu long pour te donner des nouvelles mais je dois remettre tous les noms dans chaque onglet respectif.
Et mettre dans la feuille classement dans les cellules C2, D2, E2, H2 et I2 les références avec le signe égal pour chaque nom afin de faire fonctionner la macro pour ce dit classement.
Bien à toi
Re Via55,
par hasard, n'aurais tu pas une formule qui quand j'ai mis le signe = dans la cellule
=AB!C2 =AB!D2 =AB!E2 =AB!H2 et =AB!I2 qui est pour le premier onglet ici en l'occurrence AB.
De faire une copie ou un tiré pour tous les autres noms.
Car ici je dois rentrer chacune des cellules C,D,E,H et I. pour chaque nom.
Je sais c'est beaucoup te demander mais je dois te dire que ton retour fichier pour le moment fonctionne.
J'ai encore un peu de boulot ( macro pour effacer ).
Mais cela avance.
Bat.
par hasard, n'aurais tu pas une formule qui quand j'ai mis le signe = dans la cellule
=AB!C2 =AB!D2 =AB!E2 =AB!H2 et =AB!I2 qui est pour le premier onglet ici en l'occurrence AB.
De faire une copie ou un tiré pour tous les autres noms.
Car ici je dois rentrer chacune des cellules C,D,E,H et I. pour chaque nom.
Je sais c'est beaucoup te demander mais je dois te dire que ton retour fichier pour le moment fonctionne.
J'ai encore un peu de boulot ( macro pour effacer ).
Mais cela avance.
Bat.
Re
Le nom étant en colonne B, mettre en C2 la formule :
=INDIRECT(B15&"!C2")
puis clic droit sur le petit carré noir en bas à droite de la cellule pour l'étirer au bas de la colonne
en D2 mettre la même formule avec D2 au lieu de C2 etc
Attention ne supporte pas les espaces dans les noms ! S'il y en a, il faut les remplacer par le tiret du 8 exemple DUPONT_Jean et faire de même dans les noms des feuilles ainsi que dans la feuille test etc
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Le nom étant en colonne B, mettre en C2 la formule :
=INDIRECT(B15&"!C2")
puis clic droit sur le petit carré noir en bas à droite de la cellule pour l'étirer au bas de la colonne
en D2 mettre la même formule avec D2 au lieu de C2 etc
Attention ne supporte pas les espaces dans les noms ! S'il y en a, il faut les remplacer par le tiret du 8 exemple DUPONT_Jean et faire de même dans les noms des feuilles ainsi que dans la feuille test etc
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Re Via55,
J'essaie la formule mais cela ne marche pas ( je ne comprends pas le B15 ), quand je fais entrée puis clic droit pour la croix je tire et après je dois faire copier cellules , copier avec forme , copier sans forme.???????? mais voilà je que j'ai .#REF!
J'ai changé les noms comme dis sans espace ou avec un tiret entre le nom et prénom, rien ni fait.
Bat
J'essaie la formule mais cela ne marche pas ( je ne comprends pas le B15 ), quand je fais entrée puis clic droit pour la croix je tire et après je dois faire copier cellules , copier avec forme , copier sans forme.???????? mais voilà je que j'ai .#REF!
J'ai changé les noms comme dis sans espace ou avec un tiret entre le nom et prénom, rien ni fait.
Bat
Re,
D'accord mais dans test ma cellule C2 pour AB fait référence a la feuille AB Cellule H2 (=AB!H2 );
Car sur ta formule si je tire vers la droite j'ai toujours =INDIRECTC2&"!C2");et si je remplace par =INDIRECT(D2&"!I2") ma cellule me donne #REF!?
je crois que je fais devoir me farcir cellules par cellules.
Bat
D'accord mais dans test ma cellule C2 pour AB fait référence a la feuille AB Cellule H2 (=AB!H2 );
Car sur ta formule si je tire vers la droite j'ai toujours =INDIRECTC2&"!C2");et si je remplace par =INDIRECT(D2&"!I2") ma cellule me donne #REF!?
je crois que je fais devoir me farcir cellules par cellules.
Bat
Tu veux dire dans classement je suppose
la cellule C2 doit recevoir la valeur de la cellule H2 de la feuille portant le nom en B2
donc en C2 mettre la formule =INDIRECT(B2 & "!H2") puis étirer sur la colonne avec double clic sur le petit carré noir en bas à droite
la cellule D2 doit recevoir la valeur de la cellule I2 de la feuille portant le nom en B2
donc en D2 =INDIRECT(B2 & "!I2") puis étirer sur la colonne
etc...
En résumé tu dois entrer la formule pour chaque cellule de la ligne 2 en changeant seulement l'adresse en fin de formule , mais c'est toujours B2 puisque le nom de la feuille est recupéré d'après le nom des personnes en colonne B
(La fonction INDIRECT recompose une adresse en concatenant le contenu de B2 avec ce qu'il y a entre guillemets après le & de la concaténation, ainsi en C2 l'adresse reconstituée est AB!H2, en C3 ce sera AC!H2, en D2 : AB!I2 etc
on va y arriver !
Cdlmnt
la cellule C2 doit recevoir la valeur de la cellule H2 de la feuille portant le nom en B2
donc en C2 mettre la formule =INDIRECT(B2 & "!H2") puis étirer sur la colonne avec double clic sur le petit carré noir en bas à droite
la cellule D2 doit recevoir la valeur de la cellule I2 de la feuille portant le nom en B2
donc en D2 =INDIRECT(B2 & "!I2") puis étirer sur la colonne
etc...
En résumé tu dois entrer la formule pour chaque cellule de la ligne 2 en changeant seulement l'adresse en fin de formule , mais c'est toujours B2 puisque le nom de la feuille est recupéré d'après le nom des personnes en colonne B
(La fonction INDIRECT recompose une adresse en concatenant le contenu de B2 avec ce qu'il y a entre guillemets après le & de la concaténation, ainsi en C2 l'adresse reconstituée est AB!H2, en C3 ce sera AC!H2, en D2 : AB!I2 etc
on va y arriver !
Cdlmnt
Re Via55,
si j'ai bien compris en ayant tiré avec la croix cela s'incrémente automatiquement
=INDIRECT(B3&"!h2") =INDIRECT(B3&"!i2") =INDIRECT(B4&"!G2")
=INDIRECT(B4&"!H2") =INDIRECT(B4&"!i2") =INDIRECT(B4&"!G2") et ainsi de suite.......
Et chaque cellule ira chercher dans sa feuille correspondante en H2, N/SORTIE
en I2, CG en G2 Total Kms et pour J2 et K2 pareil.
et quand je fais les présences suivant le nombre ( 50 coureurs par ex ) repris le classement se fera d'après ces données.
je te tiens informé pour le résultat , ma macro pour effacer toutes les données après transfert ca ne va pas effacer mes formules.
Bat
si j'ai bien compris en ayant tiré avec la croix cela s'incrémente automatiquement
=INDIRECT(B3&"!h2") =INDIRECT(B3&"!i2") =INDIRECT(B4&"!G2")
=INDIRECT(B4&"!H2") =INDIRECT(B4&"!i2") =INDIRECT(B4&"!G2") et ainsi de suite.......
Et chaque cellule ira chercher dans sa feuille correspondante en H2, N/SORTIE
en I2, CG en G2 Total Kms et pour J2 et K2 pareil.
et quand je fais les présences suivant le nombre ( 50 coureurs par ex ) repris le classement se fera d'après ces données.
je te tiens informé pour le résultat , ma macro pour effacer toutes les données après transfert ca ne va pas effacer mes formules.
Bat
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui les formules étirées en vertical s'incrémente pour B2, B3 etc
mais tu ne peux pas les étirer horizontalement car "!h2" entre guillemets ne s'incrémente pas, il faut les taper une par une dans chaque colonne de la première ligne
Quant à la macro pour effacer que tu vas enregistrer c'est justement pour choisir les plages que tu effaces et laisser sans les toucher celles avec les formules, tu fais la manip que tu ferais normalement pour effacer les données qui doivent changer (par prudence fais le sur une copie du fichier original !)
Ainsi quand tu lanceras plus tard la macro avec un bouton elle effacera les mêmes plages sans effacer celles avec les formules
Ok tiens moi au courant
A+
mais tu ne peux pas les étirer horizontalement car "!h2" entre guillemets ne s'incrémente pas, il faut les taper une par une dans chaque colonne de la première ligne
Quant à la macro pour effacer que tu vas enregistrer c'est justement pour choisir les plages que tu effaces et laisser sans les toucher celles avec les formules, tu fais la manip que tu ferais normalement pour effacer les données qui doivent changer (par prudence fais le sur une copie du fichier original !)
Ainsi quand tu lanceras plus tard la macro avec un bouton elle effacera les mêmes plages sans effacer celles avec les formules
Ok tiens moi au courant
A+
Re
Pour le moment cela fonctionne hormis que quand je fais transférer les données il y a
plv = Sheets(nomf).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 ( de la macro )
Et pour les noms on ne peut mettre dans le style Jean-Marie cela ne passe pas mais jean_marie Pour le classement te tiens info.
Merci encore de ta patience et de ton temps
Bat
Pour le moment cela fonctionne hormis que quand je fais transférer les données il y a
plv = Sheets(nomf).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 ( de la macro )
Et pour les noms on ne peut mettre dans le style Jean-Marie cela ne passe pas mais jean_marie Pour le classement te tiens info.
Merci encore de ta patience et de ton temps
Bat
Que veux tu dire par il y a :
plv = Sheets(nomf).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1
plv = Sheets(nomf).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1
Bonsoir skopg
En principe tu ne lances le transfert que lorsque les lignes sont complétées
On peut faire un test en début de transfert pour savoir si toute la colonne G est complétée mais s'il y a des absents ? Je suppose qu'il faut verifier en même temps qu'il y a bien 1 en colonne E ?
Pendant qu'on y est, il y a t il une autre colonne à vérifier avant d'autoriser le transfert ?
Dans l'attente
Cdlmnt
En principe tu ne lances le transfert que lorsque les lignes sont complétées
On peut faire un test en début de transfert pour savoir si toute la colonne G est complétée mais s'il y a des absents ? Je suppose qu'il faut verifier en même temps qu'il y a bien 1 en colonne E ?
Pendant qu'on y est, il y a t il une autre colonne à vérifier avant d'autoriser le transfert ?
Dans l'attente
Cdlmnt
Re Via55,
J'ai fais des macros pour sorties ext ou pas, je ne sais pas si tu les as eues avec le fichier que je t'avais mis en Ci-joint.
Si je sélectionne par ex avec sortie et que je fais un tri sur categorie E......si j'oubliais certains kms en G tout était transféré........mais j'ai changé dans la macro
If Sheets("test").Range("G" & n).Value <> crit And Sheets("test").Range("P" & n).Value <> "X" Then
J'ai changé par <> le signe = (égal ) et apparemment cela fonctionne.
Je te tiens au courant car après il faut que le classement suive après chaque entrée.
Bat @+
J'ai fais des macros pour sorties ext ou pas, je ne sais pas si tu les as eues avec le fichier que je t'avais mis en Ci-joint.
Si je sélectionne par ex avec sortie et que je fais un tri sur categorie E......si j'oubliais certains kms en G tout était transféré........mais j'ai changé dans la macro
If Sheets("test").Range("G" & n).Value <> crit And Sheets("test").Range("P" & n).Value <> "X" Then
J'ai changé par <> le signe = (égal ) et apparemment cela fonctionne.
Je te tiens au courant car après il faut que le classement suive après chaque entrée.
Bat @+
Re Via55,
je voulais dire que par ( Ci joint ) c'est quand je te l'avais envoyé le 11 octobre ( https://www.cjoint.com/?0JlqJNzXJjD ).
Dis peut-on au lieu de faire un tri pour chaque catégorie pour y mettre les kms ( G ) de faire par ex
des cellules qui pour chacune j'y mettrai les kms et suivant sa catégorie viendrait placer ces Kms dans la ligne correspondante a la catégorie.
Car en général chaque catégorie a le même nombre de Kms cela évitera de taper 30 fois par ex pour les sportifs 20 fois pour les coteurs etc....ou de faire un tiré.
Bat
je voulais dire que par ( Ci joint ) c'est quand je te l'avais envoyé le 11 octobre ( https://www.cjoint.com/?0JlqJNzXJjD ).
Dis peut-on au lieu de faire un tri pour chaque catégorie pour y mettre les kms ( G ) de faire par ex
des cellules qui pour chacune j'y mettrai les kms et suivant sa catégorie viendrait placer ces Kms dans la ligne correspondante a la catégorie.
Car en général chaque catégorie a le même nombre de Kms cela évitera de taper 30 fois par ex pour les sportifs 20 fois pour les coteurs etc....ou de faire un tiré.
Bat
Tu peux parfaitement faire un tableau de base de donnée sur une autre feuille en 2 colonnes une pour la lettre de la catégorie et l'autre pour les kms
Tu sélectionnes toute la plage de ce tableau et tu la nommes par ex kilom
ensuite dans Test en G9 tu mets la formule =RECHERCHEV(D9;kilom;2;0)
puis doubleclic sur le petit carré noir en bas à droite de la cellule pour étirer la formule sur le colonne
Tu sélectionnes toute la plage de ce tableau et tu la nommes par ex kilom
ensuite dans Test en G9 tu mets la formule =RECHERCHEV(D9;kilom;2;0)
puis doubleclic sur le petit carré noir en bas à droite de la cellule pour étirer la formule sur le colonne
Re Via55,
Je veux bien faire ce type de tableau mais au point de vue Kms je mets quoi ,,,,,car il peut y avoir de 15, 20, 26, 37, 54 ,81,93, etc .....je veux dire par là qu'il peut y avoir de 1 a 215 kms.
Car c'est au retour des coureurs que je sais les Kms qu'ils ont faits.
Comment faire dans le tableau??????
Bat
Je veux bien faire ce type de tableau mais au point de vue Kms je mets quoi ,,,,,car il peut y avoir de 15, 20, 26, 37, 54 ,81,93, etc .....je veux dire par là qu'il peut y avoir de 1 a 215 kms.
Car c'est au retour des coureurs que je sais les Kms qu'ils ont faits.
Comment faire dans le tableau??????
Bat
Bonjour Skopg
Voilà le fichier pour l'UF avec annotations dans les macros
Dis moi si ça convient
https://www.cjoint.com/?0Jvlp6GbRiS
Via
Voilà le fichier pour l'UF avec annotations dans les macros
Dis moi si ça convient
https://www.cjoint.com/?0Jvlp6GbRiS
Via
Bonjour Via55,
Merci pour le fichier je viens de tester cela fonctionne jusque trois entrées car si après la touche retour pour mettre la 4 ième je valide ( par erreur.....pour essai ) le UF se ferme et je peux double cliquer sur cellule B4:B157.
Mais déjà encore un super merci pour ton temps et ta patience.
Bat
Merci pour le fichier je viens de tester cela fonctionne jusque trois entrées car si après la touche retour pour mettre la 4 ième je valide ( par erreur.....pour essai ) le UF se ferme et je peux double cliquer sur cellule B4:B157.
Mais déjà encore un super merci pour ton temps et ta patience.
Bat
Re Via55,
Super ça fonctionne et le zéro qui est devant n'influence pas pour les kms ( par ex 0125 kms ) pour la première entrée car quand valider on trouve bien 125 kms.
Je suis encore sur le transfert données ( je regarde que si sortie ext et la case Divers par remplie ) si oubli pendant le pointage alors pas de transfert.
Je ne sais pas comment te dire encore merci pour tout ton travail.
Super
Bat
@+
Super ça fonctionne et le zéro qui est devant n'influence pas pour les kms ( par ex 0125 kms ) pour la première entrée car quand valider on trouve bien 125 kms.
Je suis encore sur le transfert données ( je regarde que si sortie ext et la case Divers par remplie ) si oubli pendant le pointage alors pas de transfert.
Je ne sais pas comment te dire encore merci pour tout ton travail.
Super
Bat
@+
Re Via55,
Je crois que je vais abuser de ta patience car peux-tu stp regarder car après avoir mis le 1 dans sortie ext et que si on oublie de remplir la case DIVERS.
Qu'une msgbox dise que cette case est vide et nécessaire pour le transfert.
Avec juste le 1 dans présence et pas de sortie ext cela fonctionne ca tu le sais.
Moi je tourne en rond pour cette condition vraiment je n'y arrive pas j'avais eu un semblant de réponse avec ( présence et sortie ext ) et même une msgbox pour me dire de remplir DIVERS.
Mais car il y a toujours un mais après je n'ai fais que présence et la ca ne marche plus?
Bat
@+
Je crois que je vais abuser de ta patience car peux-tu stp regarder car après avoir mis le 1 dans sortie ext et que si on oublie de remplir la case DIVERS.
Qu'une msgbox dise que cette case est vide et nécessaire pour le transfert.
Avec juste le 1 dans présence et pas de sortie ext cela fonctionne ca tu le sais.
Moi je tourne en rond pour cette condition vraiment je n'y arrive pas j'avais eu un semblant de réponse avec ( présence et sortie ext ) et même une msgbox pour me dire de remplir DIVERS.
Mais car il y a toujours un mais après je n'ai fais que présence et la ca ne marche plus?
Bat
@+
Re,
Dernière version
https://www.cjoint.com/?0Jwcsh3ucDo
les lieux se mettent de I1 à I6 (tu peux les cacher en agrandissant un peu le bouton)
A tester dans tous les sens
La feuille est protégée et les cellules avec formules ainsi que les kms et lieux sont verrouillées
Chaque macro enlève d'abord la protection pour pouvoir travailler sur la feuille et la reprotège à la fin
j'ai laissé les filtres sur les colonnes car ils sont nécessaires sinon les boutons ne fonctionnent pas mais ils sont inactifs manuellement étant donné la protection de la feuille
Si tu as besoin de déproteger momentanément la feuille pour faire une modif Onglet Revision Oter la protection (je n'ai pas mis de mot de passe) Ne pas oublier de reproteger ensuite
Bien cdlmnt
@+
Via
Dernière version
https://www.cjoint.com/?0Jwcsh3ucDo
les lieux se mettent de I1 à I6 (tu peux les cacher en agrandissant un peu le bouton)
A tester dans tous les sens
La feuille est protégée et les cellules avec formules ainsi que les kms et lieux sont verrouillées
Chaque macro enlève d'abord la protection pour pouvoir travailler sur la feuille et la reprotège à la fin
j'ai laissé les filtres sur les colonnes car ils sont nécessaires sinon les boutons ne fonctionnent pas mais ils sont inactifs manuellement étant donné la protection de la feuille
Si tu as besoin de déproteger momentanément la feuille pour faire une modif Onglet Revision Oter la protection (je n'ai pas mis de mot de passe) Ne pas oublier de reproteger ensuite
Bien cdlmnt
@+
Via
Bonjour Via55,
un super grand merci pour ton travail.
Mais malheureusement il y a encore un mais quand je double clic pour sortie ext et que msgbox apparaît ok pas de problème j'introduis les lieux et puis je double clic et les lieux s'indiquent
la ou il y a un 1.
mais, c'est ici que vient le mais,si je double clic pour faire case blanche je ne sais plus faire revenir ma msgbox pour éventuellement y changer de lieu ( car si erreur dans lieu ) je fais devoir me faire onglet par onglet.
Ne peux t'on pas le faire venir avec un bouton de même pour les kms si aussi erreur , tu vas me dire que l'on ne doit pas faire d'erreur.
Aussi si plus tard j'ai plus de membres il me suffit d'insérer de nouvelles lignes et voir si je dois changer ma longueur dans mes macros du style E3:E157 devient E3:E162 par ex.
Bat
@+ skopg
un super grand merci pour ton travail.
Mais malheureusement il y a encore un mais quand je double clic pour sortie ext et que msgbox apparaît ok pas de problème j'introduis les lieux et puis je double clic et les lieux s'indiquent
la ou il y a un 1.
mais, c'est ici que vient le mais,si je double clic pour faire case blanche je ne sais plus faire revenir ma msgbox pour éventuellement y changer de lieu ( car si erreur dans lieu ) je fais devoir me faire onglet par onglet.
Ne peux t'on pas le faire venir avec un bouton de même pour les kms si aussi erreur , tu vas me dire que l'on ne doit pas faire d'erreur.
Aussi si plus tard j'ai plus de membres il me suffit d'insérer de nouvelles lignes et voir si je dois changer ma longueur dans mes macros du style E3:E157 devient E3:E162 par ex.
Bat
@+ skopg
Re Via55,
pendant mon message j'ai trouvé pour le UserForm1 ( les kms ), mais je ne trouve pas pour le UserForm2 ( Lieux ).
Ne serait il pas préférable de mettre la msgbox seulement en fin de pointage juste avant de faire le transfert des données que la msgbox vienne qu'on n'y mette les lieux et que l'on confirme pour transfert ou pas ?
Si oui ok si non on revient sur la feuille ou tout simplement sur msgbox kms pour etre certains sur de ces derniers je sais c'est sans doute un peu long mais on n'est jamais assez prudent.
Une faute est si vite faite.
Bat
pendant mon message j'ai trouvé pour le UserForm1 ( les kms ), mais je ne trouve pas pour le UserForm2 ( Lieux ).
Ne serait il pas préférable de mettre la msgbox seulement en fin de pointage juste avant de faire le transfert des données que la msgbox vienne qu'on n'y mette les lieux et que l'on confirme pour transfert ou pas ?
Si oui ok si non on revient sur la feuille ou tout simplement sur msgbox kms pour etre certains sur de ces derniers je sais c'est sans doute un peu long mais on n'est jamais assez prudent.
Une faute est si vite faite.
Bat
Bon jour Skopg
Je viens de rentrer et je trouve tes messages.
Ca devient un peu une usine à gaz ces UF pour les kms et les lieux !
En fait comme leurs données sont reportées en haut de la feuille en H et I, ne serait-il pas plus simple d'inscrire directement dans ces cellules sur la feuille et de n'autoriser le double-clic que si les données sont remplies ? Ce qui permet facilement de les modifier après
Pour les kms je pense que ça ne pose pas de problème puisqu'ils sont ensuite répartis par catégories dans la feuille par formule donc mise à jour immédiate
Par contre pour les lieux on ne peut pas mettre de formule dans Divers puisque tu te réserves la possibilité de changer de lieu pour certaines personnes , donc il faut que le lieu s'inscrive par macro chaque fois que tu mets un 1 mais si on change après dans la liste en I1:I6 la modification ne sera pas reprise dans la feuille, pour l'instant je ne vois pas de solution sauf d'avoir une msgbox qui affiche par défaut le lieu de la catégorie concernée s'affichant à chaque rentrée de 1 dans Sortie ext avec possibilité de changer le lieu avant de valider et report ensuite sur la ligne concernée du lieu par défaut ou du nouveau lieu; mais ça oblige au minimum à cliquer sur OK à chaque entrée
Qu'en penses-tu ?
Bien cdlmnt
Via
Je viens de rentrer et je trouve tes messages.
Ca devient un peu une usine à gaz ces UF pour les kms et les lieux !
En fait comme leurs données sont reportées en haut de la feuille en H et I, ne serait-il pas plus simple d'inscrire directement dans ces cellules sur la feuille et de n'autoriser le double-clic que si les données sont remplies ? Ce qui permet facilement de les modifier après
Pour les kms je pense que ça ne pose pas de problème puisqu'ils sont ensuite répartis par catégories dans la feuille par formule donc mise à jour immédiate
Par contre pour les lieux on ne peut pas mettre de formule dans Divers puisque tu te réserves la possibilité de changer de lieu pour certaines personnes , donc il faut que le lieu s'inscrive par macro chaque fois que tu mets un 1 mais si on change après dans la liste en I1:I6 la modification ne sera pas reprise dans la feuille, pour l'instant je ne vois pas de solution sauf d'avoir une msgbox qui affiche par défaut le lieu de la catégorie concernée s'affichant à chaque rentrée de 1 dans Sortie ext avec possibilité de changer le lieu avant de valider et report ensuite sur la ligne concernée du lieu par défaut ou du nouveau lieu; mais ça oblige au minimum à cliquer sur OK à chaque entrée
Qu'en penses-tu ?
Bien cdlmnt
Via
Bonsoir Via55,
tu as raison cela devient comme tu dis une usine à gaz il est vrai que ce type de classeur est BIEN,et en vouloir en demander trop est comme on dit trop tue le trop.
S'il faut changer une donnée ou l'autre et bien cela se fera via l'onglet concerné.
Il est vrai qu'il ne devrait pas y avoir beaucoup de données a changer et quand bien même.
Si on regarde bien la feuille de pointage avant d'encoder on saura déjà la ou il sera nécessaire de le faire.
Je pense et tu me dis si j'ai raison mais on va si je peux me permettre en rester là avec ce classeur qui a son look ( non ) et qui nous pardon t'as pris beaucoup de ton temps.
Il m'a été agréable de discuter avec toi et j'ose espérer si nécessaire ( pas trop souvent quand même, Lol ....Mdr ) revenir sur ce site pour un autre classeur.
Bat
@+
tu as raison cela devient comme tu dis une usine à gaz il est vrai que ce type de classeur est BIEN,et en vouloir en demander trop est comme on dit trop tue le trop.
S'il faut changer une donnée ou l'autre et bien cela se fera via l'onglet concerné.
Il est vrai qu'il ne devrait pas y avoir beaucoup de données a changer et quand bien même.
Si on regarde bien la feuille de pointage avant d'encoder on saura déjà la ou il sera nécessaire de le faire.
Je pense et tu me dis si j'ai raison mais on va si je peux me permettre en rester là avec ce classeur qui a son look ( non ) et qui nous pardon t'as pris beaucoup de ton temps.
Il m'a été agréable de discuter avec toi et j'ose espérer si nécessaire ( pas trop souvent quand même, Lol ....Mdr ) revenir sur ce site pour un autre classeur.
Bat
@+
Bonjour skopg
1) pour l'alerte 2 possibilités :
- soit tu ne mets qu'un seul bouton pour Transferer puis Classer et dans le code du bouton tu fais lancer successivement la macro transfert puis la macro Classement (c'est l'option sécurité absolue pas de classement sans transfert)
- soit tu veux conserver les 2 boutons et tu mets au début de la macro transfert une ligne : transf=0 puis à la fin de la macro la ligne : transf=1
Avant la macro il faut déclarer la variable trans comme publique pour être utilisée par l'autre macro donc tu mets cette ligne (au dessus de Sub TransfererlesDonnées()) : Public transf as integer
Ensuite au début de la macro classement tu mets cette ligne :
If transf = 0 Then MsgBox ("Transfert impossible les données n'ont pas été transférées"): Exit Sub
2) Dans la feuille classement la colonne A suit le tri effectué.
Essaye de réengistrer une macro de tri en excluant la colonne A
Si ça ne fonctionne pas il faut qu'à la fin de la macro tu mettes quelque chose comme
For n= 1 t0 149
Range("A" et n +1)=n
Next
pour réinscrire les n°s dans l'ordre en colonne A
Cdlmnt
1) pour l'alerte 2 possibilités :
- soit tu ne mets qu'un seul bouton pour Transferer puis Classer et dans le code du bouton tu fais lancer successivement la macro transfert puis la macro Classement (c'est l'option sécurité absolue pas de classement sans transfert)
- soit tu veux conserver les 2 boutons et tu mets au début de la macro transfert une ligne : transf=0 puis à la fin de la macro la ligne : transf=1
Avant la macro il faut déclarer la variable trans comme publique pour être utilisée par l'autre macro donc tu mets cette ligne (au dessus de Sub TransfererlesDonnées()) : Public transf as integer
Ensuite au début de la macro classement tu mets cette ligne :
If transf = 0 Then MsgBox ("Transfert impossible les données n'ont pas été transférées"): Exit Sub
2) Dans la feuille classement la colonne A suit le tri effectué.
Essaye de réengistrer une macro de tri en excluant la colonne A
Si ça ne fonctionne pas il faut qu'à la fin de la macro tu mettes quelque chose comme
For n= 1 t0 149
Range("A" et n +1)=n
Next
pour réinscrire les n°s dans l'ordre en colonne A
Cdlmnt
Re Via55,
excuse-moi du retard mais encore essai, les formules ont l'air de fonctionner dans
For n= 1 t0 149 ici c'était un zéro et non un O
Range("A" et n +1)=n le et était un & de concatene
C'est bien car j'ai trouvé et pas demandé de ton aide tout de suite......Lol.
Je laisse les 2 boutons car si pas certain et que direct transfert et classement
on n'oubliera sans doute de changer dans un onglet ou autre si vraiment erreur ( c'est je pense une première sécurité )
Pour le classement le For ...........cela fonctionne, mais ( encore la celui la ), j'ai fais 2,3 essais et même après transfert si je clique sur MaJ il dit que " transfert impossible................."
Bat
excuse-moi du retard mais encore essai, les formules ont l'air de fonctionner dans
For n= 1 t0 149 ici c'était un zéro et non un O
Range("A" et n +1)=n le et était un & de concatene
C'est bien car j'ai trouvé et pas demandé de ton aide tout de suite......Lol.
Je laisse les 2 boutons car si pas certain et que direct transfert et classement
on n'oubliera sans doute de changer dans un onglet ou autre si vraiment erreur ( c'est je pense une première sécurité )
Pour le classement le For ...........cela fonctionne, mais ( encore la celui la ), j'ai fais 2,3 essais et même après transfert si je clique sur MaJ il dit que " transfert impossible................."
Bat
Re
Oui j'avais 2 erreurs en tapant vite avant de partir car je voulais que tu aies la réponse ! Tu as su rectifié, bravo
Pour la MAJ vérifie que tu as bien fait comme je tai indiqué pour la variable transf et surtout que tu l'a bien déclarée comme Public en début de module
si la macro refuse la MAJ c'est que pour elle transf=0; même s'il transf est bien à un en fin de la macro de tranfert si la variable n'est pas déclarée Public elle n'est valable que pour cette macro donc pour la macro de MAJ elle vaut toujours 0 !
Via
Oui j'avais 2 erreurs en tapant vite avant de partir car je voulais que tu aies la réponse ! Tu as su rectifié, bravo
Pour la MAJ vérifie que tu as bien fait comme je tai indiqué pour la variable transf et surtout que tu l'a bien déclarée comme Public en début de module
si la macro refuse la MAJ c'est que pour elle transf=0; même s'il transf est bien à un en fin de la macro de tranfert si la variable n'est pas déclarée Public elle n'est valable que pour cette macro donc pour la macro de MAJ elle vaut toujours 0 !
Via
Re
Je ne sais pas quoi te dire ! Sans voir le fichier et les macros; sur ma version ça marche
Ce ne doit pas être grand chose
Pour l'instant tu peux mettre une ' devant le IF transf=0... pour shunter la ligne et tu mets en dessous une autre ligne avec simplement msgbox("Avez-vous pensé à transférer d'abord")
comme rappel, ça ne bloque pas la procédure et ça te permet de finir tes essais
Quant tout fonctionnera il sera temps de voir ce qui ne pas
Courage !
Via
Je ne sais pas quoi te dire ! Sans voir le fichier et les macros; sur ma version ça marche
Ce ne doit pas être grand chose
Pour l'instant tu peux mettre une ' devant le IF transf=0... pour shunter la ligne et tu mets en dessous une autre ligne avec simplement msgbox("Avez-vous pensé à transférer d'abord")
comme rappel, ça ne bloque pas la procédure et ça te permet de finir tes essais
Quant tout fonctionnera il sera temps de voir ce qui ne pas
Courage !
Via
OK je viens de voir
En fait il faut placer transf=1 avant le End iF comme ceci (et effacer celui en bas de la sub
Sheets("test").Range("P" & n) = "X"
transf = 1
End If
Ensuite tu peux "rebrancher" le IF transf=0... dans la macro classement
Bonne suite, continue à me tenir au courant
Via
En fait il faut placer transf=1 avant le End iF comme ceci (et effacer celui en bas de la sub
Sheets("test").Range("P" & n) = "X"
transf = 1
End If
Ensuite tu peux "rebrancher" le IF transf=0... dans la macro classement
Bonne suite, continue à me tenir au courant
Via
Re skopg
Pas répondu tout de suite, j'étais sur autre chose ;)
Avant de faire de nouvelles entrées tu clic sur le bouton qui efface les anciennes, alors il faut remettre la variable trans à 0 dans cette macro transf=0 à placer en début de macro
Ta macro Classement sélectionne au début la feuille Classement, c'est normal que tu te trouves dessus ensuite; pour revenir à la feuille Test mets en fin de la macro Classement sheets("test").activate
Tu tiens le bon bout !
Via
Pas répondu tout de suite, j'étais sur autre chose ;)
Avant de faire de nouvelles entrées tu clic sur le bouton qui efface les anciennes, alors il faut remettre la variable trans à 0 dans cette macro transf=0 à placer en début de macro
Ta macro Classement sélectionne au début la feuille Classement, c'est normal que tu te trouves dessus ensuite; pour revenir à la feuille Test mets en fin de la macro Classement sheets("test").activate
Tu tiens le bon bout !
Via
Bonjour Via55,
J'espère que " autre chose " était agréable ( lol mdr........).
Pour le moment ca fonctionne ( je croise les doigts ).
J'ai ajouté ( Is Nothing And Application.Intersect(Target, Range("I9:I157")) ) pour double clic sur N.
Je vais voir pour ajouter une msgbox pour quand on fait sortie ext et après avoir remplis la msgbox pour le lieu de ne pas oublier de cliquer dans la colonne N dans le cas où le lieu est une Abbaye.
Sur feuille test le bouton MaJ j'ai mis la macro vers feuille classement ( juste pour un regard éventuel ).
Sur feuille classement le bouton Maj reste tel quel ( ainsi on voit le changement s'effectuer lors du clic ).
Et bien sur annuler sheets("test").activate .
Dis moi ce que tu en penses.
Bat
J'espère que " autre chose " était agréable ( lol mdr........).
Pour le moment ca fonctionne ( je croise les doigts ).
J'ai ajouté ( Is Nothing And Application.Intersect(Target, Range("I9:I157")) ) pour double clic sur N.
Je vais voir pour ajouter une msgbox pour quand on fait sortie ext et après avoir remplis la msgbox pour le lieu de ne pas oublier de cliquer dans la colonne N dans le cas où le lieu est une Abbaye.
Sur feuille test le bouton MaJ j'ai mis la macro vers feuille classement ( juste pour un regard éventuel ).
Sur feuille classement le bouton Maj reste tel quel ( ainsi on voit le changement s'effectuer lors du clic ).
Et bien sur annuler sheets("test").activate .
Dis moi ce que tu en penses.
Bat
Bonsoir Via55,
Je reviens de congés et je regarde le classement il y a juste un truc ou je cale c'est sur Nvl entrées,
si je clique dessus une première fois sans avoir fais des entrées la msgbox fonctionne mais après elle efface ce que je viens de faire alors que je n'ai pas transféré ???
J'ai mis une msgbox pour qu'une seule personne puisse mettre à zéro le classement pour une
nouvelle année mais je dois faire 2x la MaZ pour que l'ordre alphabétique soit correcte pourquoi???
Merci si ce n'est pas trop te demander de m'aider.
Bien à toi Skopg
Je reviens de congés et je regarde le classement il y a juste un truc ou je cale c'est sur Nvl entrées,
si je clique dessus une première fois sans avoir fais des entrées la msgbox fonctionne mais après elle efface ce que je viens de faire alors que je n'ai pas transféré ???
J'ai mis une msgbox pour qu'une seule personne puisse mettre à zéro le classement pour une
nouvelle année mais je dois faire 2x la MaZ pour que l'ordre alphabétique soit correcte pourquoi???
Merci si ce n'est pas trop te demander de m'aider.
Bien à toi Skopg
Bonsoir Skopg
J'espère que les vacances ont été bonnes
Je ne dois pas avoir ta dernière version du fichier, envoie la moi et je regarderai tout ça
Bien cdlmnt
Via
J'espère que les vacances ont été bonnes
Je ne dois pas avoir ta dernière version du fichier, envoie la moi et je regarderai tout ça
Bien cdlmnt
Via
Bonjour Via55,
je viens de rentrer du vélo je te fais le lien dans ta boite perso ( cela m'évite de changer tout les noms ).
Tu peux aussi regarder que dans la liste des coureurs si cela est correct dans le cas ou il me faut ajouter de nouveaux membres avec une base ( je vois grand de 200 Noms ,dans le style
" insertion nouveau, supprimer ancien " ) et si toutes les macros fonctionnent avec cette éventualité.
Dans l'attente de te lire
Bien à toi
je viens de rentrer du vélo je te fais le lien dans ta boite perso ( cela m'évite de changer tout les noms ).
Tu peux aussi regarder que dans la liste des coureurs si cela est correct dans le cas ou il me faut ajouter de nouveaux membres avec une base ( je vois grand de 200 Noms ,dans le style
" insertion nouveau, supprimer ancien " ) et si toutes les macros fonctionnent avec cette éventualité.
Dans l'attente de te lire
Bien à toi
Re
j'ai modifié la feuille classement pour avoir automatiquement les infos à partir du nom et la MAJ a l'air de se faire correctement
J'essaye maintenant de modeliser pour ajouter modifier supprimer un nom (creation auto de la fiche, report des infos dans test etc)
Certaines cellules m'embêtent ! A quoi servent les cellules G, K L et N 8 ? et pourquoi sont elles basées sur E9 ?
Si on peut supprimer les formules dedans cela m'arrange, sinon j'aviserai
@+
j'ai modifié la feuille classement pour avoir automatiquement les infos à partir du nom et la MAJ a l'air de se faire correctement
J'essaye maintenant de modeliser pour ajouter modifier supprimer un nom (creation auto de la fiche, report des infos dans test etc)
Certaines cellules m'embêtent ! A quoi servent les cellules G, K L et N 8 ? et pourquoi sont elles basées sur E9 ?
Si on peut supprimer les formules dedans cela m'arrange, sinon j'aviserai
@+
Re Via55,
Les cellules G,pour les kms de chaque coureur ;K pour le point de présence; L pour le point de sortie ext ( 1 passe à 2 ) et N 8 sert quand dans sortie ext il y a le mot "Abbaye " ainsi je n'oublie pas de mettre le 1 dans la colonne N.
Elles se basent sur E9, car au départ il y a RECHERCHEV par Kilom sur H1 H6.
Bien à toi
si besoin a toute
Les cellules G,pour les kms de chaque coureur ;K pour le point de présence; L pour le point de sortie ext ( 1 passe à 2 ) et N 8 sert quand dans sortie ext il y a le mot "Abbaye " ainsi je n'oublie pas de mettre le 1 dans la colonne N.
Elles se basent sur E9, car au départ il y a RECHERCHEV par Kilom sur H1 H6.
Bien à toi
si besoin a toute