Diverses petites astuces

 

Une image en arrière plan dans Excel
C'est possible par menu format feuille arrière-plan , mais l'image prend toute la feuille
Pour une petite image, il faut ruser, puisque l'image est posée dessus la feuille, alors on peut toujours dessiner par dessus, un cadre texte avec dans la zone de formule (entre la barre d'outil et les références colonnes) la référence de la cellule que l'on veut faire apparaitre du type =C10. Dans le cadre texte, apparaitra le contenu de la cellule C10

Retour liens Excel



Changer tous les chiffres d'un tableau avec un collage spécial.
exemple:
augmenter tous les chiffres de 10% tu tapes 0.1 dans une cellule, tu copie la cellule tu sélectionnes ton tableau, collage spécial, et là tu choisis de coller la "valeur" avec l'opération "multiplication"
Ou tout changer en Euro.

Retour liens Excel

 


Trier selon une colonne et un nombre de ligne donné
Des infos numériques par ordre décroissant
Sub TriSurColonne()
'sélection d'une plage
[A1:B5]. Select
'tri sur la deuxième colonne de la plage Selection.Sort Selection.Range("B1"), xlDescending
End Sub
Ci dessous un exemple : Main => crée un tableau de 5 valeurs
Tri(liste,début,fin)=>trie le les éléments entre début et fin par ordre croissant a adapter à tes besoins...
Sub main()
Dim i As Byte
Dim a(5) As Variant
a(1) = 5
a(2) = 7
a(3) = 1
a(4) = 4
a(5) = 3
Tri a, 1, 5
For i = 1 To 5
Debug.Print a(i)
Next i
Debug.Print "----------"
End Sub
Autre solution
Sub Tri(ByRef Liste As Variant, ByVal Bas As Long, ByVal Haut As Long)
Dim i As Long, j As Long
Dim Milieu As Variant, Echange As Variant
i = Bas
j = Haut
Milieu = Liste(Int(Bas + Haut) / 2)
Do
While Liste(i) > Milieu
i = i + 1
Wend
While Milieu > Liste(j)
j = j - 1
Wend
If i <= j Then
Echange = Liste(i)
Liste(i) = Liste(j)
Liste(j) = Echange
i = i + 1
j = j - 1
End If
Loop Until i > j
If Bas < j Then Tri Liste, Bas, j
If i < Haut Then Tri Liste, i, Haut
End Sub
Retour liens Excel


Afficher dans une cellule le nom de l'onglet
La formule est: exemple dans la cellule A1
=STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE ("nomfichier";A1))+1;31)
Ou dans une macro avec un message box:
ActiveSheet, propriété - Exemple
Cet exemple montre comment afficher le nom de la feuille active.
MsgBox "Le nom de la feuille active est " & ActiveSheet.Name
Retour liens Excel

 


Formule pour trouver le pourcentage entre deux cellules
En exemple:
j'ai en A1 un nombre, par exemple 45 en A2 un nombre, par exemple 80
je voudrais afficher en A3 le % pourcentage de A1 vers A2 en sachant qu'il peut être négatif
=(A1-A2)/A2 Attention il faut formaté la cellule en pourcentage.
Résultat -43.75%

Retour liens Excel


Couleur de ligne suivant la cellule sélectionner
Inclure la macro dans la feuille de classeur consernée. Ici couleur jaune
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
ActiveCell.EntireRow.Interior.ColorIndex = 36
End Sub

Retour liens Excel


Retrouver la cellule sélectionner
Une macro à inscrire dans THIS WORKBOOK , la cellule de résultat est A1
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Range("a1") = ActiveCell.Address
End Sub
Retour liens Excel



Calculer à partir d'une fonction le nombre de lignes ou de cellules de couleur jaune (ou verte, rouge etc..)
Attention la fonction doit-être placer dans le module 1 du classeur vba projet
Function CoulJaune(r As Range) As Long
Dim s As Range
For Each s In r
If s.Interior.ColorIndex = 6 Then CoulJaune = CoulJaune + 1
Next s
End Function
Mettre dans la cellule sélectionner pour la réponse la formule =CoulJaune(A1:A12)
Calculer à partir d'une fonction le nombre de cellules de couleur rouge (ou verte, jaune,etc...)
Function SomCool(Zone As Range, Couleur As String)
Application.Volatile
Select Case Couleur
Case "rouge"
Couleur = 3
Case "vert"
Couleur = 50
Case "jaune"
Couleur = 6
Case "bleu"
Couleur = 5
Case "gris"
Couleur = 15
Case "orange"
Couleur = 40
End Select
For Each cell In Zone
If cell.Interior.ColorIndex = Couleur Then cvSomme = cvSomme + 1
Next
SomCool = cvSomme
End Function
Pour connaître le nombre des cellules de la plage B1:B10 dont la couleur de fond est le rouge, écrire la formule dans la cellule : =SomCool(B1:B10;"rouge")
Retour liens Excel



Séparer dans une colonne les valeurs positives et négatives
Ma feuille contient dans la colonne A des valeurs monétaires positives et négatives. Je voudrais afficher en colonne B les valeurs positives de la colonne A et en colonne C les valeurs négatives.
La macro est:
Sub Empile()
Dim i As Integer
derniereligneena = [a1].End(xlDown).RoW
derniereligneenb = 1 'Pour commencer plus bas, augmenter le nombre
derniereligneenc = 1 'Pour commencer plus bas, augmenter le nombre
For i = 1 To derniereligneena
If Cells(i, 1).Value >= 0 Then
Cells(derniereligneenb, 2) = Cells(i, 1).Value
derniereligneenb = derniereligneenb + 1
Else
Cells(derniereligneenc, 3) = Cells(i, 1).Value
derniereligneenc = derniereligneenc + 1
End If
Retour liens Excel



Rappel sur les surfaces Are,Hectare,Centiare
Une addition toute simple.
Rappels : hecto = 100 et centi = 1/100 donc :
1 hectare = 100 ares,
1 are = 100 centiares
et 1 ha = 10 000 m²
D'où : 33 ha 25 a 57 ca
= 33,2557 ha
= 3325,57a
= 332557 ca
= 332557 m²
Retour liens Excel