Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
"Padawan" a écrit dans le message de
news:Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je
souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
"Padawan" <Padawan@discussions.microsoft.com> a écrit dans le message de
news: CF435E19-5ABE-439E-9560-FD98DA6A5E7A@microsoft.com...
Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je
souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
"Padawan" a écrit dans le message de
news:Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je
souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" a écrit dans le message de news:Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
"Padawan" a écrit dans le message de
news:Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je
souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uRojPtZAHHA.4328@TK2MSFTNGP03.phx.gbl...
Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
"Padawan" <Padawan@discussions.microsoft.com> a écrit dans le message de
news: CF435E19-5ABE-439E-9560-FD98DA6A5E7A@microsoft.com...
Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je
souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" a écrit dans le message de news:Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
"Padawan" a écrit dans le message de
news:Bonjour à tous,
J'ai construit un tableau avec plein de formules de calcul. Je
souhaiterai
ajouter automatiquement (car le tableau est immense) des "dollars" dans
toutes les formules. Est-ce possible ? Quelqu'un peut m'aider?
Merci pour toute réponse!!
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" a écrit dans le message de news:Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uRojPtZAHHA.4328@TK2MSFTNGP03.phx.gbl...
Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" a écrit dans le message de news:Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur. Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" a écrit dans le message de news:Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur.
Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
Merci Daniel pour cette macro et cette réponse aussi rapide mais j'ai un
petit souci : lorsque je l'exécute ce message : Erreur de compilation :
erreur de syntaxe apparait sur l'élément : "Set c > ActiveSheet.UsedRange.Find(TabloCol(x) & i,". Comment résoudre ce problème
SVP?
D'avance merci.
Padawan
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uRojPtZAHHA.4328@TK2MSFTNGP03.phx.gbl...
Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur.
Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
Merci Daniel pour cette macro et cette réponse aussi rapide mais j'ai un
petit souci : lorsque je l'exécute ce message : Erreur de compilation :
erreur de syntaxe apparait sur l'élément : "Set c > ActiveSheet.UsedRange.Find(TabloCol(x) & i,". Comment résoudre ce problème
SVP?
D'avance merci.
Padawan
Une version plus rapide :
Sub test()
Dim c As Range, DerLigne As Long, DerCol As Integer
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 255 To 0 Step -1
For i = 9 To 1 Step -1
Set c = ActiveSheet.UsedRange.Find(TabloCol(x) & i,
LookIn:=xlFormulas)
If Not c Is Nothing Then
DerCol = x
DerLigne = i
Exit For
End If
Next i
If DerCol <> 0 Then Exit For
Next x
For x = 0 To DerCol
For i = 1 To DerLigne
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Daniel
"Daniel" a écrit dans le message de news:Bonjour.
Essaie cette macro, mais avant, fais une sauvegarde de ton classeur.
Elle
est très longue à l'exécution. Tu as largement le temps de dîner avant
qu'elle ne se termine car elle fait fait une recherche sur toutes les
celluless de A1 à IV65536. Aussi, si tu connais la référence la plus
éloignée de A1, tu peux diminuer le temps d'exécution en modifiant :
For x = 0 To 255
et
For i = 1 To 65536
Sub test()
Dim c As Range, ctemp As String
Dim TabloCol(255) As String
For i = 0 To 255
Var = Cells(1, i + 1).Address
If Mid(Var, 3, 1) >= "A" And Mid(Var, 3, 1) <= "Z" Then
TabloCol(i) = Mid(Var, 2, 2)
Else
TabloCol(i) = Mid(Var, 2, 1)
End If
Next i
For x = 0 To 255
For i = 1 To 65536
ActiveSheet.UsedRange.Replace what:=TabloCol(x) & i,
replacement:="$" & _
TabloCol(x) & "$" & i
Next i
Next x
End Sub
Cordialement.
Daniel
Merci Daniel pour cette macro et cette réponse aussi rapide mais j'ai un
petit souci : lorsque je l'exécute ce message : Erreur de compilation :
erreur de syntaxe apparait sur l'élément : "Set c > ActiveSheet.UsedRange.Find(TabloCol(x) & i,". Comment résoudre ce problème
SVP?
D'avance merci.
Padawan