Etendre le champ d'action d'une macro enregistrée

  • Initiateur de la discussion Initiateur de la discussion Aloha
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Aloha

XLDnaute Accro
Bonjour à vous tous,

J'ai enregistré le code suivant (je l'ai déjà modifié/complété un peu: j'ai ajouté "For n = 4 to..." , et j'ai remplacé "Sheets([nom de la feuille]).Select" par "Sheets(n).Select"), que je voudrais maintenant appliquer à toutes les feuilles du classeur, à partir de la 4ème feuille:

Sub (xy)

For n = 4 To Workbook.Sheets.Count
Sheets(n).Select
Range("K4:W52").Select
Selection.Copy
Sheets("Tout").Select
Range("B1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks: = _False, Transpose:=False
Range("B51").Select
...
...
...

End Sub

Ce que je voudrais faire:
copier dans toutes les feuilles, à partir de la 4ème, les données dans K4:W52 et les coller comme valeur dans la feuille "Tout", les données de la 4e dans B1:..la 5ème dans B51:.., la 6e dans B101:... etc.

Comment faut-il modifier le code pour y arriver?

D'avance merci pour toute aide

Aloha
 
Re : Etendre le champ d'action d'une macro enregistrée

re:

le fichier doit faire au mximum 48Ko en Xls ou Zip, donc il faut mettre le minimum necessaire pour regler le probleme el enlever toute les informations delicates

Ensuite en dessous de cette fenetre, Aller en Mode avancé,
Ensuite en dessous Gerer le Pieces Jointes

Parcourir, en en fin Uploader

Voici un fichier exemple de la macro, mais incomplete pour ton fichier
Je copie 9 ligne uniqquement alors que la colonne D Comprend plus de 9 formules

Tu appuies sur le bouton
 

Pièces jointes

Re : Etendre le champ d'action d'une macro enregistrée

Salut,

Voici un fichier très allégé qui ne comprend plus que 3 feuilles dont celle s'appelant "Tout".

Voilà pourquoi il fallait changer For n=6 to... en For n=2 to...

Il n'y a toujours rien qui est copié.

D'ailleurs, j'y pense: il y a des gens qui laissent toujours des lignes libres (dans mon exemple je commence seulement à la 2e ligne, et la 1ère, vide, est également copiée). Est-il possible d'exclure ces lignes de la copie?

A plus tard

Aloha
 

Pièces jointes

Re : Etendre le champ d'action d'une macro enregistrée

Wilfried,

J'avais oublié der reporter la première colonne, celle avec les numéros dans la partoie avec les formules, à droite. J'ai donc inséré une colonne avant K, de sorte à ce que le bloc qui doit être copié ne s'étend plus de K à W, mais de K à X.

Dans ma macro j'ai changé K:W... dans K:X, et j'ai un message d'erreur dans le code de la fonction que tu as créée!

Le texte suivant est colorié en jaune.

If plage(i).Value > "" Then

Je suis étonné de ce problème!

La solution est sûrement facile pour toi.

A bientôt et merci d'avance

Aloha

Voici tout le code:

Sub Copier_toutes_les_donnees_dans_une_feuille()
'
' Copier_toutes_les_donnees_dans_une_feuille Macro
' Macro enregistrée le 31/05/2007 par FMPO
'
'Application.Calculation = xlCalculationManual
Sheets("Tout").Visible = True
Sheets("Tout").Select ' Selection de la feuille où copier

For n = 6 To ThisWorkbook.Sheets.Count
Sheets(n).Range("K4:X" & 3 + derligne(Sheets(n).Range("K4:K" & Sheets(n).Range("K65000").End(xlUp).Row))).Copy ' mise en place du Bloc à copier
Range("B" & Range("B65000").End(xlUp).Row + 1).Select ' selection de la ligne à copier
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False ' Colle ce qui a été copie
Next n
' Destruction des lignes vides
For n = Range("B65000").End(xlUp).Row To 1 Step -1
If Range("B" & n).Value = "" Then Range("B" & n).EntireRow.Delete
Next n
End Sub

Function derligne(plage As Range) As Long
Dim i As Long
For i = plage.Count To 1 Step -1
If plage(i).Value > "" Then Exit For
Next i
derligne = i
End Function
 
Re : Etendre le champ d'action d'une macro enregistrée

Lorsque je lance la macro dans le fichier que tu m'as envoyé; lorsque je copie le code dans mon fichier réel, qui diffère de l'autre uniquement par le nombre de fiches pour les employés, le code bloque et:

If plage(derline).Value > "" Then

est en jaune

Aloha
 
Re : Etendre le champ d'action d'une macro enregistrée

re:

il faut savoir quelle feuiile cela concerne, et quelle ligne, maintenant, sans le fichier reel ca va etre dificile parce que sur le fichier que je t'ai envoyé, c'est Ok........ il doit y avoir un probleme dans une cellule

Quel est le N° de l'erreur qu'il affiche (erreur 13 ?) incompatibilité de type ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
687
Réponses
12
Affichages
883
Réponses
3
Affichages
880
Réponses
6
Affichages
847
Retour