Diverses petites astuces

Appeler une macro contenue dans un fichier depuis une macro contenue dans un autre fichier
Je précise :
Un fichier maitre.xls contient une macro "général" qui gère l'ouverture , le traitement, et la fermeture de plusieurs fichiers "esclave_1.xls", "/windowsxp06/pagesastucesexcel/esclaves_2.xls", ..., "/windowsxp06/pagesastucesexcel/esclave_n_.xls"
Mettre dans la macrodans générale:
Application.Run "esclave_1.xls!" & nomMacro
Retour liens Excel

 


Ajouter des commemtaire sur les fonctions
j'ai crée des fonctions sous excel, je voudrais ajouter des commentaires lorsque que l'on appelle ces fonctions depuis la touche fx comme pour les autres fonctions d'Excel
"Manuellement" :
faire Alt-F8, tape le nom de ta fonction dans la zone de texte "nom de la macro" (t'inquiète pas si tu vois pas ta fonction dans la liste déroulante, c'est normal), clique ensuite sur "Options" et saisis la description de ta fonction.
La même chose par macro :
Sub MacroDescription()
Application.MacroOptions Macro:="FonctionA", Description:="Ma fonction fait bcp de choses"
End Sub
Il suffit d'exécuter cette instruction une seule fois (dans le même module que celui où se trouve la fonction, de préférence) et d'enregistrer le classeur ensuite.
Le commentaire sera attaché à la fonction.
Retour liens Excel



Arrondir une cellule
Par une macro
Sub CellulesArrondies()
Set depart = Selection
r1 = depart.Height
r2 = depart.Width
r3 = depart.Top
r4 = depart.Left
ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, _ r4, r3, r2, r1).Select Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0)
depart.Select
End Sub
La cellule est en rouge
Pour garder la couleur initial remplacer la ligne 8 par:
Selection.ShapeRange.Fill.Visible=msoFalse
Retour liens Excel



Faire un enregistrement automatique
Pour installer l'enregistrement automatique:
Choisis la commande Macros complémentaires dans le menu Outils
Active la macro complémentaire "enregistrement automatique"
Pour déterminer la fréquence, choisis la commande Enregistrement automatique dans le menu outils.

Retour liens Excel

 


Macro signalant un chiffre déja inscrit dans une feuille
A installer dans Microsoft Visual Basic de la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" Then
Exit Sub
End If
For Each cell In Intersect(UsedRange, Cells)
If cell.Address = Target.Address Then
GoTo suite
End If
If cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
suite:
Next cell
End Sub
Retour liens Excel

 


Macro pour informer si une cellule contient des caractères en gras
A incorporer dans la feuille
Sub gras()
For Each c In Selection
If c.Font.Bold = True Then
MsgBox "La cellule " & c.AddressLocal & " est en GRAS"
End If Next
End Sub
Retour liens Excel

 


Pour modifier le contenu d'une cellule
contenant du texte et des chiffres en supprimant le texte et en transformant les nombres à virgules.
Par exemple : 19.17 à transformer en 19,17.
Si toutes les cellules ont le même type de présentation. Copie la macro suivante dans un module, et avant de faire exécuter la macro sélectionne toutes les cellules à modifier.
En plus de modifier le contenu, elle affectera un format numérique au cellule traité.
Sub ModifierContenuCellule()
Dim C As Range
Dim MaPlage As Range Set MaPlage = Selection
Application.ScreenUpdating = False
MaPlage.Replace What:="(*)", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False
MaPlage.Replace What:=".", Replacement:=",", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False
MaPlage.NumberFormat = "# ##0.##"
For Each C In MaPlage C = CDec(C.Value)
Next
Range(Selection(1).Address).Select
End Sub
Retour liens Excel



Pour avoir le code des couleurs de Excell.
lance cette macro sur une feuille vierge
Sub couleurs()
For i = 1 To 56
Cells(i, 1).Select
Selection.Interior.ColorIndex = i
Cells(i, 2) = i
Next i
End Sub
Ou cette macro, qui elle vous fait la page en couleur de Excell
Sub couleurs()
ActiveWindow.Zoom = 50
Cells.Clear
For j = 1 To 56
For i = 1 To 56
Cells(i, j).Interior.ColorIndex = i
Next i
Next j
Cells.Clear
For j = 1 To 56
For i = 1 To 56
Cells(i + j, 1 + i).Interior.ColorIndex = i
Next i
Next j
Cells.Clear
For j = 1 To 56
For i = 1 To 56
Cells(i, j).Interior.ColorIndex = i
Cells(i + j, 1 + i).Interior.ColorIndex = i
Cells(i + j, 1 + j).Interior.ColorIndex = i
Next i
Next j
End Sub
Retour liens Excel



Macro pour rechercher un jour entre deux dates
Exemple : les vendredi 13
Sub Vendredi13()
For jour = Range("B1") To Range("A2")
If Weekday(jour) = vbFriday And Day(jour) = 13 Then
ligne = ligne + 3
Cells(ligne, 1) = jour
End If
Next jour
End Sub
Retour liens Excel

 


Macro pour exécuter un calendrier
Exemple de calendrier dans la colonne A
Sub calendrier()
varAn = Val(InputBox("Année ?", "CALENDRIER"))
If varAn = 0 Then GoTo fin 'clic sur touche Annuler ou la croix
X = DateSerial(varAn, 1, 1)
Y = DateValue("31 décembre " & varAn)
For i = 0 To Y - X
Range("A" & i + 1) = X + i
Next
fin:
End Sub
Retour liens Excel