Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collant
dans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonction
qui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.
Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
End Sub
Comment corriger ?
Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collant
dans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonction
qui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.
Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
End Sub
Comment corriger ?
Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collant
dans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonction
qui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.
Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
End Sub
Comment corriger ?
Voici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" a écrit dans le message
de news:Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collantdans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonctionqui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))End Sub
Comment corriger ?
Voici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message
de news:62A4AFB2-AF01-4219-9876-B646F7AD260F@microsoft.com...
Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collant
dans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonction
qui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))
Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.
Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))
End Sub
Comment corriger ?
Voici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" a écrit dans le message
de news:Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collantdans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonctionqui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))End Sub
Comment corriger ?
Voici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" a écrit dans le message
de news:Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collantdans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonctionqui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))End Sub
Comment corriger ?
Voici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message
de news:62A4AFB2-AF01-4219-9876-B646F7AD260F@microsoft.com...
Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collant
dans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonction
qui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))
Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.
Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))
End Sub
Comment corriger ?
Voici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" a écrit dans le message
de news:Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collantdans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonctionqui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))End Sub
Comment corriger ?
Re bonjour
1 ) Après un test plus poussé la macro fonction ne fonctionne pas lorsque
la
cellule est déjà numérique exemple : 97,25 , est-il possible de la
corriger ?
2 ) Comme elle fonctionne à 98% je l'ai intégrée dans une macro mise dans
PERSO.xls.Y a-til une autre manière plus élégante d'écrire la macro ?
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
If Range("POINTEUR").Value <> 0 Then
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
ActiveCell.FormulaR1C1 = "=PERSO.XLS!conversion(POINTEUR)"
Selection.Copy
Range("POINTEUR").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
'Déplace la cellule active d'une colonne vers la droite
'Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
Selection.ClearContents
'Déplace la cellule active d'une colonne vers la gauche
'Dim LigVar, ColVar
LigVar = 0
ColVar = -1
Selection.Offset(LigVar, ColVar).Select
'Déplace la cellule active d'une ligne vers le bas
LigVar = 1
ColVar = 0
Selection.Offset(LigVar, ColVar).Select
Valeur
Else
Exit Sub
End If
End Sub
3 ) Si on n'arrive pas à modifier conversion , on pourrait peut-être
interroger le contenu de la cellule active et si c'est numérique ne rien
faire , mais comme je suis nul je ne sais pas cooment écrire cette
instruction.
merci encore pour votre aideVoici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" a écrit dans le
message
de news:Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie
partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collantdans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonctionqui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))End Sub
Comment corriger ?
Re bonjour
1 ) Après un test plus poussé la macro fonction ne fonctionne pas lorsque
la
cellule est déjà numérique exemple : 97,25 , est-il possible de la
corriger ?
2 ) Comme elle fonctionne à 98% je l'ai intégrée dans une macro mise dans
PERSO.xls.Y a-til une autre manière plus élégante d'écrire la macro ?
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
If Range("POINTEUR").Value <> 0 Then
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
ActiveCell.FormulaR1C1 = "=PERSO.XLS!conversion(POINTEUR)"
Selection.Copy
Range("POINTEUR").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
'Déplace la cellule active d'une colonne vers la droite
'Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
Selection.ClearContents
'Déplace la cellule active d'une colonne vers la gauche
'Dim LigVar, ColVar
LigVar = 0
ColVar = -1
Selection.Offset(LigVar, ColVar).Select
'Déplace la cellule active d'une ligne vers le bas
LigVar = 1
ColVar = 0
Selection.Offset(LigVar, ColVar).Select
Valeur
Else
Exit Sub
End If
End Sub
3 ) Si on n'arrive pas à modifier conversion , on pourrait peut-être
interroger le contenu de la cellule active et si c'est numérique ne rien
faire , mais comme je suis nul je ne sais pas cooment écrire cette
instruction.
merci encore pour votre aide
Voici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le
message
de news:62A4AFB2-AF01-4219-9876-B646F7AD260F@microsoft.com...
Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie
partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collant
dans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonction
qui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))
Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.
Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))
End Sub
Comment corriger ?
Re bonjour
1 ) Après un test plus poussé la macro fonction ne fonctionne pas lorsque
la
cellule est déjà numérique exemple : 97,25 , est-il possible de la
corriger ?
2 ) Comme elle fonctionne à 98% je l'ai intégrée dans une macro mise dans
PERSO.xls.Y a-til une autre manière plus élégante d'écrire la macro ?
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
If Range("POINTEUR").Value <> 0 Then
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
ActiveCell.FormulaR1C1 = "=PERSO.XLS!conversion(POINTEUR)"
Selection.Copy
Range("POINTEUR").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
'Déplace la cellule active d'une colonne vers la droite
'Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
Selection.ClearContents
'Déplace la cellule active d'une colonne vers la gauche
'Dim LigVar, ColVar
LigVar = 0
ColVar = -1
Selection.Offset(LigVar, ColVar).Select
'Déplace la cellule active d'une ligne vers le bas
LigVar = 1
ColVar = 0
Selection.Offset(LigVar, ColVar).Select
Valeur
Else
Exit Sub
End If
End Sub
3 ) Si on n'arrive pas à modifier conversion , on pourrait peut-être
interroger le contenu de la cellule active et si c'est numérique ne rien
faire , mais comme je suis nul je ne sais pas cooment écrire cette
instruction.
merci encore pour votre aideVoici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" a écrit dans le
message
de news:Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie
partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collantdans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonctionqui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))End Sub
Comment corriger ?
1) Faute de frappe:
'--------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
conversion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'----------------
2)
Ta macro Valeur() est bien compliquée.
Le code suivant effectue le même travail:
Sub Valeur()
ActiveCell.Value = conversion(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
End Sub
Tu peux mettre ma fonction convesion() tans le même modue que ta macto
Valeur()
3) Sans objet
Cordialement,
--
AP
"Jean-Paul V" a écrit dans le message
de news:Re bonjour
1 ) Après un test plus poussé la macro fonction ne fonctionne pas lorsque
lacellule est déjà numérique exemple : 97,25 , est-il possible de la
corriger ?2 ) Comme elle fonctionne à 98% je l'ai intégrée dans une macro mise dans
PERSO.xls.Y a-til une autre manière plus élégante d'écrire la macro ?
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
If Range("POINTEUR").Value <> 0 Then
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
ActiveCell.FormulaR1C1 = "=PERSO.XLS!conversion(POINTEUR)"
Selection.Copy
Range("POINTEUR").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _False, Transpose:úlse
'Déplace la cellule active d'une colonne vers la droite
'Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
Selection.ClearContents
'Déplace la cellule active d'une colonne vers la gauche
'Dim LigVar, ColVar
LigVar = 0
ColVar = -1
Selection.Offset(LigVar, ColVar).Select
'Déplace la cellule active d'une ligne vers le bas
LigVar = 1
ColVar = 0
Selection.Offset(LigVar, ColVar).Select
Valeur
Else
Exit Sub
End If
End Sub
3 ) Si on n'arrive pas à modifier conversion , on pourrait peut-être
interroger le contenu de la cellule active et si c'est numérique ne rien
faire , mais comme je suis nul je ne sais pas cooment écrire cette
instruction.
merci encore pour votre aideVoici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" a écrit dans le
messagede news:Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie
partielsur écran , malheureusement je récupère par exemple 2.093,63CR en le
collantdans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonctionqui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > > > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))End Sub
Comment corriger ?
1) Faute de frappe:
'--------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
conversion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'----------------
2)
Ta macro Valeur() est bien compliquée.
Le code suivant effectue le même travail:
Sub Valeur()
ActiveCell.Value = conversion(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
End Sub
Tu peux mettre ma fonction convesion() tans le même modue que ta macto
Valeur()
3) Sans objet
Cordialement,
--
AP
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message
de news:298FB685-6D14-4734-A116-40C961F073ED@microsoft.com...
Re bonjour
1 ) Après un test plus poussé la macro fonction ne fonctionne pas lorsque
la
cellule est déjà numérique exemple : 97,25 , est-il possible de la
corriger ?
2 ) Comme elle fonctionne à 98% je l'ai intégrée dans une macro mise dans
PERSO.xls.Y a-til une autre manière plus élégante d'écrire la macro ?
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
If Range("POINTEUR").Value <> 0 Then
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
ActiveCell.FormulaR1C1 = "=PERSO.XLS!conversion(POINTEUR)"
Selection.Copy
Range("POINTEUR").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
'Déplace la cellule active d'une colonne vers la droite
'Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
Selection.ClearContents
'Déplace la cellule active d'une colonne vers la gauche
'Dim LigVar, ColVar
LigVar = 0
ColVar = -1
Selection.Offset(LigVar, ColVar).Select
'Déplace la cellule active d'une ligne vers le bas
LigVar = 1
ColVar = 0
Selection.Offset(LigVar, ColVar).Select
Valeur
Else
Exit Sub
End If
End Sub
3 ) Si on n'arrive pas à modifier conversion , on pourrait peut-être
interroger le contenu de la cellule active et si c'est numérique ne rien
faire , mais comme je suis nul je ne sais pas cooment écrire cette
instruction.
merci encore pour votre aide
Voici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le
message
de news:62A4AFB2-AF01-4219-9876-B646F7AD260F@microsoft.com...
Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie
partiel
sur écran , malheureusement je récupère par exemple 2.093,63CR en le
collant
dans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonction
qui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";
"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))
Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.
Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > > > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"
");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))
End Sub
Comment corriger ?
1) Faute de frappe:
'--------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
conversion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'----------------
2)
Ta macro Valeur() est bien compliquée.
Le code suivant effectue le même travail:
Sub Valeur()
ActiveCell.Value = conversion(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
End Sub
Tu peux mettre ma fonction convesion() tans le même modue que ta macto
Valeur()
3) Sans objet
Cordialement,
--
AP
"Jean-Paul V" a écrit dans le message
de news:Re bonjour
1 ) Après un test plus poussé la macro fonction ne fonctionne pas lorsque
lacellule est déjà numérique exemple : 97,25 , est-il possible de la
corriger ?2 ) Comme elle fonctionne à 98% je l'ai intégrée dans une macro mise dans
PERSO.xls.Y a-til une autre manière plus élégante d'écrire la macro ?
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
If Range("POINTEUR").Value <> 0 Then
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
ActiveCell.FormulaR1C1 = "=PERSO.XLS!conversion(POINTEUR)"
Selection.Copy
Range("POINTEUR").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _False, Transpose:úlse
'Déplace la cellule active d'une colonne vers la droite
'Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
Selection.ClearContents
'Déplace la cellule active d'une colonne vers la gauche
'Dim LigVar, ColVar
LigVar = 0
ColVar = -1
Selection.Offset(LigVar, ColVar).Select
'Déplace la cellule active d'une ligne vers le bas
LigVar = 1
ColVar = 0
Selection.Offset(LigVar, ColVar).Select
Valeur
Else
Exit Sub
End If
End Sub
3 ) Si on n'arrive pas à modifier conversion , on pourrait peut-être
interroger le contenu de la cellule active et si c'est numérique ne rien
faire , mais comme je suis nul je ne sais pas cooment écrire cette
instruction.
merci encore pour votre aideVoici une fonction personnalisée qui fait la conversion:
si ta valeur 2.093,63CR est en A1, tu mets en B1 =conversion(A1)
Cordialement,
--
AP
'----------------------
Function conversion(v As Variant) As Double
If IsNumeric(v) Then
convesion = v
Else
v = Replace(v, ".", "")
If Right(v, 1) = "-" Then
conversion = -CDbl(Left(v, Len(v) - 1))
ElseIf Right(v, 2) = "CR" Then
conversion = -CDbl(Left(v, Len(v) - 2))
Else
conversion = CDbl(v)
End If
End If
End Function
'---------------------------
"Jean-Paul V" a écrit dans le
messagede news:Bonjour à tous
J'ai souvent besoin de récupérer des chiffres sur Excel par copie
partielsur écran , malheureusement je récupère par exemple 2.093,63CR en le
collantdans une cellule Excel , cette cellule se nommant POINTEUR j'ai la
fonctionqui me transforme bien ce libellé en valeur :
=SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-
";DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))Je voudrais maintenant mettre cette fonction dans une Macro dans
PERSO.xls.Comment corriger cette Macro qui ne marche pas :
Sub Valeur()
'Nommer la cellule active
ActiveCell.Name = "POINTEUR"
'Déplace la cellule active d'une colonne vers la droite
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select
'Crée le Nom RESULTVAL
ActiveCell.Name = "RESULTVAL"
Range("RESULTVAL").Value > > > >
SI(ESTNUM(POINTEUR)=1;POINTEUR;SI(POINTEUR="";0;SI(OU(DROITE(POINTEUR;1)="-"
;DROITE(POINTEUR;2)="CR");-CNUM(SUBSTITUE(SUBSTITUE(SUBSTITUE(POINTEUR;"-";"");"CR";"");".";""));CNUM(SUBSTITUE(POINTEUR;".";"")))))End Sub
Comment corriger ?