VBA macro afficher nom de cellule dans colonne à  côté

Voici une petite macro qui permet d’afficher les noms de cellule d’une colonne dans une autre colonne.

Pratique pour le développement.

Function listeNames(zone, decalagex)
NumLigne = 1
'dans la ligne ci-dessous, indiquez bon range
For Each cellule In ThisWorkbook.Sheets(2).Range(zone).Cells
On Error Resume Next

Dim Ok As Boolean
Dim i As Integer
Ok = False

Set nms = ActiveWorkbook.Names
For i = 1 To nms.Count
'MsgBox(nms(i).Name)
If nms(i).RefersToRange.Address = cellule.Address Then Ok = True
Next

If Ok = True Then
Nom_Cell = cellule.Name.Name
'MsgBox (Nom_Cell)
'dans la ligne ci-dessous modifier le 0,1 par le x,y de deplacement par rapport a la cellule active
cellule.Offset(0, decalagex) = Nom_Cell
Nom_Cell = ""
End If

NumLigne = NumLigne + 1
Next cellule

End Function

Public Sub exec()
    Call listeNames("C1:C90", 2)
    Call listeNames("I51:I62", 2)
    Call listeNames("S53:S77", 2)
    Call listeNames("H15:H22", 1)

End Sub

Macro excel liste des cellules et plages nommées d’un classeur excel

Une petite macro vraiment intéressante.

Explication  : La macro suivante liste les cellules et les plages nommées, dans l’ordre d’index des feuilles, et crée une table des matières avec liens hypertextes.

Attention à  l’exécuter sur une feuille vierge  !

Sub ListeNoms_OrdreFeuilles()
    Dim N As Name
    Dim PlageNom As Range
    Dim i As Byte
    Dim NumLigne As Byte
    Cells(1, 1) = "NAME"
    Cells(1, 2) = "VALUE"
    Cells(1, 3) = "SHEET"
    Cells(1, 4) = "ADDRESS"
    Cells(1, 5) = "LINK"
    NumLigne = 2
    On Error Resume Next
    For i = 1 To Worksheets.Count
        For Each N In Worksheets(i).Parent.Names
            Set PlageNom = Nothing
            Set PlageNom = N.RefersToRange
            If Not PlageNom Is Nothing Then
                If Worksheets(i).Index = PlageNom.Worksheet.Index Then
                    Cells(NumLigne, 1) = N.Name
                    Cells(NumLigne, 2) = N.RefersToRange.Value
                    Cells(NumLigne, 3) = N.RefersToRange.Worksheet.Name
                    Cells(NumLigne, 4) = N.RefersToRange.Address(external:=False)
                    'pour un lien relatif
                    Worksheets(1).Hyperlinks.Add Anchor:=Cells(NumLigne, 5), _
                    Address:="", SubAddress:=N.RefersToRange.Worksheet.Name + "!" + N.RefersToRange.Address(external:=False)
                    'pour un lien absolu
                    'Worksheets(1).Hyperlinks.Add Anchor:=Cells(NumLigne, 5), _
                    Address:="", SubAddress:=N.RefersToRange.Address(external:=True)
                    NumLigne = NumLigne + 1
                End If
            End If
        Next N
    Next i
End Sub


Time lapse : compte à  rebours javascript pour les interros

J’ai développé ce petit script pour ma femme qui est professeur et qui en avait marre, pendant ses interros, que ses élèves lui demandent :

– Il reste combien de temps ?

Le principe est simple vous entrez l’heure de fin de l’examen, puis vous cliquez sur commencer.

Le compte à  rebours commence. A la fin l’écran clignote rouge !

=> Télécharger le script : timelapses <=

Ref technique :

 

VBA : changer nom cellule de manière récursive

Petite macro VBA qui permet de changer de manière récursive le nom des cellules (le nom pas les valeurs).

Cette exemple

  • Boucle sur la première ligne A1, B2, C3 …
  • Vérifie si le contenu de ce champ
  • Si non vide, il renomme la cellule juste en dessous (A2, B2, C2 …) avec le contenu de la cellule initiale.
Sub NommerChamps()
   For Each c In Range([A1], [IV1].End(xlToLeft))
       If Not IsEmpty(c) Then
             ActiveWorkbook.Names.Add Name:=c, RefersTo:="=" & Range(c.Offset(1, 0), c.Offset(1, 0)).Address
       End If
   Next
End Sub

Nota la fonction offset(x,y) permet de se déplacer de de x,y depuis la cellule en focus.

function URLEncode (clearString)

Equivalent à  urlencode($str) de php mais pour javascript

function URLEncode (clearString) {
var output = '';
var x = 0;
clearString = clearString.toString();
var regex = /(^[a-zA-Z0-9_.]*)/;
while (x < clearString.length) {
var match = regex.exec(clearString.substr(x));
if (match != null && match.length > 1 && match[1] != '') {
output += match[1];
x += match[1].length;
}
else {
if (clearString[x] == ' ') output += '+';
else {
var charCode = clearString.charCodeAt(x);
var hexVal = charCode.toString(16);
output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
}
x++;
}
}
return output;
}

source :  http://cass-hacks.com/articles/code/js_url_encode_decode/

Javascript : function ipValid (ip, type)

la fonction ipValid accèpte 2 paramètres :

  • ip : (string) une chaà®ne de caractère qui doit être testée comme une adresse IP.
  • type : (number) 4 ou 6 pour tester une IPv4 ou IPv6
function ipValid(ip,type) {
if(type==4) reg = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ig;
else reg = /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/ig;
return ip.match(reg);
}