Dim nom_2 As String Dim nom As String Dim chiffre As Integer Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next If CheckBox1.Value = True Then Exit Sub nom = Target.Address If Target.Address = nom Then nom = Target.Value FindIt Target.Select transChiffre If chiffre = "0" Then ActiveCell.Offset(0, 1).Select ' à droite (0 même ligne, 1 col à droite) ElseIf chiffre = "1" Then ActiveCell.Offset(0, 2).Select ' à droite (0 même ligne, 2 col à droite) ElseIf chiffre = "2" Then ActiveCell.Offset(0, 3).Select ' à droite (0 même ligne, 3 col à droite) ElseIf chiffre = "3" Then ActiveCell.Offset(0, 4).Select ' à droite (0 même ligne, 4 col à droite) End If ActiveSheet.Paste End If CheckBox1.Value = False End Sub Private Sub FindIt() Dim oRange As Range Dim vRow As Variant If nom = "" Then Exit Sub Feuil1.Activate CheckBox1.Value = True Set oRange = Feuil1.Range("Q:Q") 'Trouvez le contenu de la cellule complète ' vRow = Application.Match(nom, oRange, False) 'Trouver dans une partie du contenu de la cellule vRow = Application.Match("*" & nom & "*", oRange, False) If IsError(vRow) Then 'MsgBox "Non trouvé" Else Feuil1.Range("Q" & vRow).Select Selection.Copy nom_2 = Selection.Value End If End Sub Sub transChiffre() On Error Resume Next s = nom_2 For I = 1 To Len(s) If IsNumeric(Mid(s, I, I)) Then 'separer l'alpha et les numeric lettre = Mid(s, 10, I - 1) numero = Mid(s, I, Len(s)) GoTo suit End If Next suit: chiffre = lettre End Sub
Dim resultat As String Sub transChiffre() On Error Resume Next s = "A5311AD003.TIF" For I = 1 To Len(s) If IsNumeric(Mid(s, I, I)) Then 'separer l'alpha et les numeric lettre = Mid(s, 10, I - 1) numero = Mid(s, I, Len(s) - 5) 'on enlève les dernières lettres et le point GoTo suit End If Next suit: MsgBox numero resultat = numero End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) dernierChiffre End Sub Sub dernierChiffre() Dim chiffre As String Dim lenChiffre As Integer Dim droiteChiffre As String Dim cel As Range Dim Pdecimale As String transChiffre For Each cel In Selection chiffre = resultat lenChiffre = Len(chiffre) droiteChiffre = Right(chiffre, 1) pos = InStr(1, chiffre, ".") Pdecimale = Mid(chiffre, pos + 1) nbzero = Len(Pdecimale) - 1 zero = Application.WorksheetFunction.Rept("0", nbzero) ' cel.Offset(0, 1).Value = "0." & zero & droiteChiffre MsgBox droiteChiffre Next cel End Sub
Dim nom_2 As String Dim nom As String Dim chiffre As Integer Sub BouclePlagesCellules() 'Définit une variable qui va représenter un classeur Dim Wb As Workbook 'Définit une variable qui va représenter une feuille de calcul Dim Ws As Worksheet 'Définit une variable qui va représenter une cellule Dim Cell As Range 'Boucle sur chaque classeur de l'application Excel For Each Wb In Application.Workbooks 'Boucle sur chaque feuille de chaque classeur For Each Ws In Wb.Worksheets 'Boucle sur chaque cellule de la colonne A For Each Cell In Ws.Range("A:A") If Cell.Value = "" Then Exit Sub Cell.Select 'selection cellule colonne A nom = Cell.Value 'nom cellule colonne A FindIt 'recherche du nom Cell.Select 'selection cellule colonne A transChiffre 'recherche du dernier chifre If chiffre = "0" Then ActiveCell.Offset(0, 1).Select ' à droite (0 même ligne, 1 1 col à droite) ElseIf chiffre = "1" Then ActiveCell.Offset(0, 2).Select ' à droite (0 même ligne, 2 2 col à droite) ElseIf chiffre = "2" Then ActiveCell.Offset(0, 3).Select ' à droite (0 même ligne, 3 3 col à droite) ElseIf chiffre = "3" Then ActiveCell.Offset(0, 4).Select ' à droite (0 même ligne, 4 4 col à droite) End If ActiveSheet.Paste 'on colle Next Cell Next Ws Next Wb End Sub Private Sub FindIt() Dim oRange As Range Dim vRow As Variant If nom = "" Then Exit Sub Feuil1.Activate Set oRange = Feuil1.Range("Q:Q") 'Trouvez le contenu de la cellule complète ' vRow = Application.Match(nom, oRange, False) 'Trouver dans une partie du contenu de la cellule vRow = Application.Match("*" & nom & "*", oRange, False) If IsError(vRow) Then 'MsgBox "Non trouvé" Else Feuil1.Range("Q" & vRow).Select Selection.Copy 'on copie nom_2 = Selection.Value 'nom de l'hypertexte End If End Sub Sub transChiffre() On Error Resume Next s = nom_2 'nom de l'hypertexte For I = 1 To Len(s) If IsNumeric(Mid(s, I, I)) Then 'separer l'alpha et les numeric lettre = Mid(s, 10, I - 1) '10ème caractère numero = Mid(s, I, Len(s)) GoTo suit End If Next suit: chiffre = lettre ' dernier caractère End Sub
Private Sub CommandButton1_Click() BouclePlagesCellules End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question