Amélioration Macro

Bonsoir le Forum

Je me permets de vous mettre 3 macros pour les améliorées, je les ai faites via l'enregistreur de macro, lors du déclenchement j'ai comme des flachs à l'écran.

Merci pour votre aide

Clt

Sub Travail()

Range("i2:N2").Select 'je selectionne les cellules de I2 à N2

Selection.AutoFill Destination:=Range("i2:N310"), Type:=xlFillDefault 'et les copies jusqu'a la ligne 310

Range("K2:N2").Select

Range(Selection, Selection.End(xlDown)).Select ' je copie la plage de k2 à N2

ActiveWindow.SmallScroll Down:=-45

Selection.Copy

Range("P2").Select ' je me positionne sur P2 et copie les valeur uniquement

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

Columns("S:S").Select

Selection.NumberFormat = "#,##0.00_);[Red](#,##0.00)" ' je mets au format monétaire

Range("U1").Select

ActiveWorkbook.Save ' j'enregistre la feuille

End Sub

Sub Efface_les_Données()

'Sheets("Recup_Données").Select 'Je selectionne la feuil ("Recup_Données").

Range("A2:C2").Select 'Je selectionne la plage A2 C2 et j' efface

Range(Selection, Selection.End(xlDown)).Select ' Jusqu'a la dernière cellule pleinne

Selection.ClearContents ' J'efface

Range("H2:I2").Select ' Je selectionne la plage H2 I2

Range(Selection, Selection.End(xlDown)).Select ' Jusqu'a la dernière cellule pleinne

Selection.ClearContents ' J'efface

Range("P2:S2").Select 'Je selectionne la plage P2 S2

Range(Selection, Selection.End(xlDown)).Select ' Jusqu'a la dernière cellule pleinne

Selection.ClearContents ' J'efface

Range("P2").Select

Sheets("Feuil_Export").Select 'Je selectionne la feuil ("Feuil_Export").

Range("A2:I2").Select Je selectionne la plage

Range(Selection, Selection.End(xlDown)).Select ' Jusqu'a la dernière cellule pleinne

Selection.ClearContents ' J'efface

Range("a2").Select

ActiveWorkbook.Save ' Je sauve

Sheets("Feuil_Export").Select

End Sub

Sub Colle_Données()

Sheets("Feuil_Export").Select

Range("A2").Select

ActiveSheet.Paste

Range("A2").Select

Range("B2:B65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'je supprime les lignes vides

Range("A2:C2").Select

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

Sheets("Recup_Données").Select

Range("A2").Select

ActiveSheet.Paste

Sheets("Feuil_Export").Select

Range("H2:I81").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("Recup_Données").Select

Range("H2").Select

ActiveSheet.Paste

Range("P2").Select

End Sub

Bonjour vsp31,

J'crois qu't'as laissé ta 1ère sub faire trempette trop longtemps : elle a rétréci au lavage !

Sub Travail()
  Application.ScreenUpdating = 0              ' empêche la mise à jour de l'écran (évite les flashes)
  [I2:N2].AutoFill [I2:N310], 0                               ' copie I2:N2 jusqu'en ligne 310
  Range("K2:N" & Cells(Rows.Count, "K").End(xlUp).Row).Copy   ' copie la plage K2:N & dernière ligne
  [P2].PasteSpecial -4163                                     ' en P2 : copie des valeurs uniquement
  Application.CutCopyMode = False
  Columns("S").NumberFormat = "#,##0.00_);[Red](#,##0.00)"    ' colonne S au format monétaire
  [U1].Select: ActiveWorkbook.Save                            ' enregistre le classeur
End Sub

Pour la cure d'amaigrissement des 2 autres, j'te laisse faire dans l'même style.

dhany

Bonjour et merci dhany

Au séchage elle rentre plus dans son habit de travail

Je rencontre deux petits problèmes, je suis dans la misère pour faire des crochets la raison je suis sur un mac mais je travail sous windows et le clavier mac sous windows ne connais pas les crochets, si se n'est faire une modification de la nappe etc......vu sur le net

et l'autre : Columns("S").NumberFormat = "#,##0.00_);[Red](#,##0.00)" ' colonne S au format monétaire ouvre la fenêtre débogage erreur"438" propriété ou méthode non gérée par cet objet.

Merci

Bonne Journée

Clt

Voyons d'abord ton instruction VBA problématique :

Columns("S").NumberFormat = "#,##0.00_);[Red](#,##0.00)" ' colonne S au format monétaire

Tu as écrit que ça génère l'erreur "438" : propriété ou méthode non gérée par cet objet.

Pourtant, le début est bon : Columns("S").NumberFormat = ; on peut effectivement appliquer un format (numérique ou non) à une colonne entière ; donc sûr à 100% que ça marche (sauf si la feuille est protégée, avec ou sans mot de passe, et que les cellules de la colonne S sont verrouillées) ; donc si c'est ok d'ce côté-là, ça peut venir que du format lui-même : à vérifier ! il me semble qu'il faudrait une virgule à la place du point-virgule, non ?


vsp31 a écrit :

je suis dans la misère pour faire des crochets la raison je suis sur un mac

1) Sur le clavier d'un PC, on peut obtenir un caractère (absent ou présent sur les touches) en appuyant sur la touche Alt gauche, en la maintenant enfoncée, en tapant le code numérique décimal du code ascii du caractère sur le pavé numérique, puis en relâchant la touche Alt (oui, la même, donc toujours la gauche ) t'inquiètes pas : c'est long à décrire mais rapide à faire ; ainsi pour le crochet gauche : Alt 91[ et pour le crochet droit : Alt 93] ; reste à savoir si t'as un pavé numérique, et si ton clavier est doté d'une touche Alt ?


2) Autre solution, qui sera probablement plus efficace (lire d'abord le 1er lien, les 4 autres sont en bonus) :

https://www.memoinfo.fr/tutoriels-mac-osx/raccourcis-claviers-caracteres-speciaux-mac-osx/

https://support.apple.com/fr-fr/HT201236

https://www.blogdumoderateur.com/raccourcis-clavier-mac/

http://www.debutersurmac.com/tutoriels/raccourcis.html

https://dev.w3.org/Amaya/doc/WX/ShortCuts-MacOSX.html.fr

Voilà : t'as l'embarras du choix ! si tu trouves pas ton bonheur là-dedans, j'crois qu'c'est à désespérer !

J'présume que si tu connaissais pas, ça va sûrement t'changer la vie ! que tu pourras alors voir en rose !!!

mais attention, sahib : si toi voir éléphants roses, ça y'en avoir être plutôt mauvais signe !


3) Malgré toutes ces infos, j'veux t'éviter d'chercher une touche que tu pourras jamais trouver sur ton clavier :

screen

dhany

Bonsoir dhany, le forum

Merci pour toutes ces infos, j'ai retrouvé mes crochets, le code fonctionne, il me reste plus qu'a voir pour les 2 autres.

Je reviendrais faire un tour si je boque.

bonne fin de journée.

OK, mais pour passer un sujet en résolu, faut pas afficher le joli p'tit panneau mais faire c'qu'y'a noté dessus : tu dois donc cliquer sur la coche V (située près du bouton EDIT), et ça permet aussi de clôturer le fil de cette discussion.

Tu sauras que tu as réussi quand tu verras un petit rond vert avec une coche, comme ceci :

sujet

bonne fin de journée à toi aussi.

dhany

Rechercher des sujets similaires à "amelioration macro"