Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

wmichelange

XLDnaute Occasionnel
Bonjour à tous

je ne comprends pas le problème d'Excel (exl 2000 et Exl 2007)
ci-joint la macro:

Sub Lignes1()
'
' Lignes1 Macro
' Macro enregistrée le 20/10/2007 adaptée par Moi
'
For i = 3 To 20
Range("IR" & i & ":" & "KO" & i).Select
Selection.Copy
Range("IR" & i + 1 & ":" & "KO" & i + 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
' elle ne convertit pas pas les lignes (IR à KO) avant de les classer
' De ce fait Excel considère que ce sont des chiffres en texte et il n'y a pas d'ordre croissant ou décroissant. Exemple :8-20-40-2 etc ce qui n’est guère un classement

Selection.Sort Key1:=Range("IR" & i + 1), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
i = i + 1
Next i
'
End Sub

Elle écrit les résultats en alphanumérique; Pourquoi ?

Merci de me donner des conseils pour convertir les résultats en chiffres (numérique)
Et merci de votre temps

a+
wmichelange
 
Re : correction de macro

Salut,

2 solutions:

1/ si tu peux accepter de garder tes valeur sous forme de texte tu peux ajouter l'option xlSortTextAsNumbers:

Code:
Sub Lignes1()
'
' Lignes1 Macro
' Macro enregistrée le 20/10/2007 adaptée par Moi
'
For i = 3 To 20
Range("IR" & i & ":" & "KO" & i).Copy
Range("IR" & i + 1 & ":" & "KO" & i + 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Selection.Sort Key1:=Range("IR" & i + 1), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight[COLOR="Blue"], _
        DataOption1:=xlSortTextAsNumbers[/COLOR]
i = i + 1
Next i
'
End Sub

2/ si tu as besoin de nombres tu peux dans ce cas convertir comme suit:


Code:
Sub Lignes1()
'
' Lignes1 Macro
' Macro enregistrée le 20/10/2007 adaptée par Moi
'
[COLOR="Blue"]Dim Macellule As Range[/COLOR]
For i = 3 To 20
Range("IR" & i & ":" & "KO" & i).Copy
Range("IR" & i + 1 & ":" & "KO" & i + 1).Select
[COLOR="Blue"]For Each Macellule In Selection
     Macellule.Value = CDbl(Macellule.Value)
Next[/COLOR]
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Selection.Sort Key1:=Range("IR" & i + 1), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
i = i + 1
Next i
'
End Sub

A+🙂
 
Re : correction de macro

Bonjour le forum

Bonjour Bigfish et Staple1600

Merci de votre réponse

Bigfish le 1er code fonctionne très bien et classe normalement
Par contre il laisse les chiffres en forme de texte (pas de conversion)

le 2me code demande débogage
Sub Lignes1()
'
' Lignes1 Macro
' Macro enregistrée le 20/10/2007 adaptée par Moi
'
Dim Macellule As Range
For i = 3 To 20
Range("IR" & i & ":" & "KO" & i).Copy
Range("IR" & i + 1 & ":" & "KO" & i + 1).Select
For Each Macellule In Selection
Macellule.Value = CDbl(Macellule.Value) débogageNext
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Selection.Sort Key1:=Range("IR" & i + 1), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
i = i + 1
Next i
'
End Sub

Staple1600 Bien le bonjour et merci d'avoir répondu
mais la macro
Sub Lignes1bis()
Dim i As Long
For i = 3 To 20
With Range("IR3:C" & i)
.Value = .Value
End With
Next i
Range("IR3").CurrentRegion.Sort Key1:=Range("IR3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
End Sub
Impossible d’executer la macromême avec A3

Meric de votre temps
a+
wmichelange
 
Re : correction de macro

Bonjour le forum
Merci de vos réponses
Bigfish cette ligne : Macellule.Value = CDbl(Macellule.Value)
déclenche le débogage ( en jaune)

Wilfried42 je n'arrive pas à placer ta modif Il n'y a rien qui fonctionne.

Staple 1600 Merci de ton temps
Ta macro fonctionne comme tu l'affirmes mais elle efface toutes les formules contenues dans la lignes A3 ( en réel Ligne IR3) ;
on peut en faire un outil pour cpoy-colle, mais pas une macro introduit dans un tableau.
Ci-joint le fichier (Ligne A3 formules à garder)
Merci à tous
a+
wmichelange
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
742
Réponses
2
Affichages
673
Réponses
2
Affichages
1 K
Retour