Renommer une partie du nom de toutes les feuilles

A

Antoine

Guest
Bonjour à vous,

G un ensemble de Feuille sous Excel nommés 'Feuil31', 'Feuil32'... et ce jusqu'à ... 'Feuil151'.

Pour toute ces feuilles je souhaite modifier leur nom respectivement en 'Lot31', 'Lot32'... et ce jusqu'à ... 'Lot151'.

J'ai essayé avec
'
Sheets('Feuil31').Select
Sheets('Feuil31').Name = 'Lot31'
'

Mais je ne vois pas comment automatiser jusqu'à 151.

Merci beaucoup pour votre aide

Antoine
 
A

Antoine

Guest
Copie de lignes précises vers autre feuille

Merci beaucoup Pascal, c'est génial...

Et quelle réactivité de ta part! je suis surpris :eek:hmy:

J'en profite pour une autre question...

Ma première feuille regroupe tous les lots.
C'est une série de lignes dont la colonne de gauche porte un numéro de 31 à 151 correspondant au numéro de lot.
exemple de la 1ere colonne
'
31
31
31
32
33
33
34
34
34
34
'
Je souhaite copier l'ensemble des lignes de ma première feuille ayant le même numéro '31' dans sa premiere colonne et les coller dans la feuille portant le nom Lot31. Je souhaite reitérer ce copier/coller jusqu'à Lot150.

Il s'agit en fait de découper la première feuille en fonction du numéro de sa première colone vers d'autres feuilles dont le nom comprend le numéro de la première colone.
 
A

Antoine

Guest
Re:Copie de lignes précises vers autre feuille

Pascal,

Le nombre de colonne est identique. Seul le nombre de lignes varie en fonction du numéro de lot.

Désolé pour l'imprécision du message précédent.

Antoine
 
A

Antoine

Guest
Re: Plus d'information

La première feuille comprend un tableau de 1930 lignes dont les colonnes vont de 'A' à 'S'.
La première ligne contient la désignation de chacune des colonnes. La première colonne s’appelle 'N° lot' et contient la valeur '31' … '151' comme décrit dans message ci-dessus.
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re: Plus d'information

RE

Essaies avec ce code


Option Explicit

Sub CopiePlage()

Dim TableauDonnees
Dim MaLigne As Integer
Dim x As Integer, y As Byte

TableauDonnees = Range('A2:S' & Range('A65536').End(xlUp).Row)
For x = 1 To UBound(TableauDonnees)
    MaLigne = Sheets('Lot' & TableauDonnees(x, 1)).Range('A65536').End(xlUp).Row + 1
   
For y = 1 To 19
        Sheets('Lot' & TableauDonnees(x, 1)).Cells(MaLigne, y) = TableauDonnees(x, y)
   
Next
Next

End Sub



Bon courage

PS : Remplace le :S du code par : S sans espace entre les : et le S

Message édité par: Pascal76, à: 01/12/2005 15:35
 
A

Antoine

Guest
Re: Garder mise en forme

Bravo et encore merci Pascal

Ça marche très bien.

Toutefois je perds la mise en forme d'origine alors que quand je fais un copier/coller en manuel le quadrillage et centrage par exemple reste.
Est-il possible de modifier le programme pour garder le format d'origine voir même de conserve la largeur des colonnes de la première feuille. Largeur qui n'est pas non plus conservée avec la fonction copier/coller.

Une autre question :
Une fois la macro exécutée, peut-on l'annuler pour revenir à la situation d'avant son exécution?

Merci beaucoup d’avance de tes lumières.

Antoine
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re: Garder mise en forme

Re

La réponse pour la mise en page et la largeur des colonnes est oui c'est possible mais j'arais pas le temps ce soir

Pour la deuxième partie tout dépend ce que tu entends par revenir à la situation d'avant la macro (peut-être bin que oui peut-être bin qu'non) ;)
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re: Garder mise en forme

RE

Nouveau code pour un copier avec mise en forme et largeur colonne

Ce sera plus long qu'avec l'autre code

Option Explicit

Sub CopiePlage()

Dim x As Integer, y As Byte

Application.ScreenUpdating =
False
For x = 2 To Range('A65536').End(xlUp).Row
    Range('A' & x & ':S' & x).Copy Sheets('Lot' & Range('A' & x)).Range('A' & Sheets('Lot' & Range('A' & x)).Range('A65536').End(xlUp).Row + 1)
Next
For x = 31 To 151
   
For y = 1 To 19
        Sheets('Lot' & x).Columns(y).ColumnWidth = Columns(y).ColumnWidth
   
Next
Next
Application.ScreenUpdating =
True
End Sub


Bonne journée
 
A

Antoine

Guest
Re: Q macro?

Bonjour Pascal,

C’est super, ça marche génial.
Un grand merci à toi. Et désolé pour ma réponse tardive.

Pour revenir à ma question d’hier qui n’était pas très explicite, voici une reformulation de cette question en espérant que cette fois elle sera compréhensible.

Une fois que j’ai exécuté une macro, je m’aperçois que ce n’était pas exactement ce que je voulais faire et je souhaite l’annuler pour pouvoir l’exécuter différemment, c’est à dire revenir à la situation précédant son exécution. En général sous Excel lorsque je fais une manip. et que ça ne me convient pas je fais Edition\\Annuler (ctrl+Z), mais dans le cas des macros ça ne marche pas. Peut-on annuler l’exécution d’une macro ou des-exécuter une macro ? Jusqu’à présent je ferme mon fichier Excel sans l’enregistrer. Puis je l’ouvre à nouveau, c’est à dire tel qu’il était lors du dernier enregistrement…

Autre chose, j’ai visité ton Blog « Le Blog de Pascal76 » (si 76 est ton année de naissance c’est aussi la mienne !). Dans la partie Excel, tu parles d’ « un petit 'barbatruc' conçu pour filtrer non pas des colonnes mais des lignes sous Excel » ; intuitivement je procède comme suit :
Je fais un copier du tableau puis coller spécial… avec uniquement Valeur & Transposé de coché. Cela permet de retrouver les lignes en colonnes et vice versa et maintenant, il est possible d’appliquer le filtre automatique.

Bon après-midi.

Antoine
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re: Q macro?

Salut

Pour répondre à ta question non tu ne peux pas faire un espèce de Ctrl Z pour macro. Tu n'as pas trop de choix d'enregistrer avant la macro et de fermer sans enregistrer si ça va pas comme tu fais ou de travailler sur des copies

Pour le 76 ce n'est ni mon année de naissance ni mon âge (n'est-ce pas Gérard ;) ) mais mon département d'habitation

Tiens tu peux lire Lien supprimé

Sinon pour le filtre en ligne dans le cas cité le but justement était de filtrer en ligne sans faire de tansposition en colonnes. D'où le fil qui a pris quelques jours. Relis tout le fil que j'ai mis en lien tu verras : tiens c'est Lien supprimé

Bonne soirée
 
A

Antoine

Guest
Re: Copie avec liaison

Pascal,

Merci de ta rapide réponse.
Désolé, je n'ai pas encore eu le temps de regarder ton travail sur le filtre inversé. Je n'y manquerai pas.

Pour en revenir à ma demande originelle, où on découpe une première feuille comportant un ensemble de lot en autant de feuille qu'il y a de lot et où l’on y copie les valeurs par lot…

Tout ce que tu m'as donné fonctionne à merveille et je souhaiterai l'améliorer en créant des liaisons entre les cellules de la première feuille et l'ensemble des autres feuilles correspondant aux lots.

C'est à dire je souhaiterai lorsque le contenu d'une cellule de la première feuille change, la cellule de la feuille du lot correspondant change aussi et vice versa. Par exemple si on change le contenu de la cellule K2 dans la feuille « Lot58 », je voudrai que le contenu de la cellule correspondante dans ma première feuille change aussi (K600).
Je pense que c'est possible dans un sens avec l'instruction :
Link:=True
Qu'en est-il exactement?
Est-ce possible dans l'autre sens (double liaison)?

Merci d'avance pour tes lumières.

Bonne soirée,
Antoine
 
A

Antoine

Guest
Re: Copie avec liaison

Pascal,

Pardon mais je ne comprends pas « Clé unique », j’ai cherché dans l’aide mais je n’ai pas trouvé… Par contre j’y ai trouvé ce qui correspond à ma demande, ça s’appelle « référence circulaire », et donc ce n’est pas possible dans les deux sens.
Dans un premier temps, je cherche donc à ce que ma feuille Lot«x» soit actualisé en fonction de ma première feuille qui regroupe tous les lots à la suite.

En manuel, sous Excel, par exemple j’écris dans la cellule A2 de la feuille « Lot51 » la formule suivante :
='PremiereFeuille'!A418
Et je copie cette formule aux différentes cellules de la feuille «Lot51»
C’est ainsi qu’en K3 de la feuille « Lot51 » j’ai
='PremiereFeuille'!K419

Peut-on intégrer cela à ta macro de CopiePlage() ?

J’essaierai demain de t’envoyer un fichier Excel pour éclaircir mes propos.

Bonne soirée à toi,
Antoine
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16