quelle instruction si Active.cell type = fonction ?
3 réponses
Jean-Paul V
Bonjour à tous
1 ) Par quelle instruction puis-je savoir si dans Active.cell j'ai une
fonction ? ceci afin de ne pas la tuer par ma Macro qui change les libellés
et les numériques en numérique
2 ) La macro à modifiée est :
Sub Valeur()
If ActiveCell.Value > " " And ActiveCell.Value < " zz" Then ' ainsi la
macro ne se plante pas sur un libellé
Exit Sub
Else
If ActiveCell.Value > "a" Then 'ne se plante pas sur un vrai libellé
Exit Sub
Else
If ActiveCell.Value = " " Then ' ne s'arrête pas si nous avons un blanc dans
la colonne copiée
ActiveCell.Value = 0
Selection.NumberFormat = "#,##0.00"
ActiveCell.Offset(1, 0).Select
Valeur
Else
If ActiveCell.Value <> 0 Then
ActiveCell.Value = conversion(ActiveCell.Value)
Selection.NumberFormat = "#,##0.00"
ActiveCell.Offset(1, 0).Select
Valeur
Else
Exit Sub
End If
End If
End If
End If
End Sub
Cette macro fait la conversion des copies partielle d'écran As400 en vraies
valeurs dans excel .
exemple copie écran :
16,79CR
1.089,86
<---- ici on récupère un blanc
1.089,86-
La fonction conversion est :
'--------------
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
'----------------
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ardus Petus
if activecell.hasFormula then <c'est une formule> else <ce n'est pas une formule> endif
Cordialement,
AP
PS: tu es apparenté aux II ?
"Jean-Paul V" a écrit dans le message de news:
Bonjour à tous
1 ) Par quelle instruction puis-je savoir si dans Active.cell j'ai une fonction ? ceci afin de ne pas la tuer par ma Macro qui change les libellés
et les numériques en numérique
2 ) La macro à modifiée est :
Sub Valeur() If ActiveCell.Value > " " And ActiveCell.Value < " zz" Then ' ainsi la macro ne se plante pas sur un libellé Exit Sub Else If ActiveCell.Value > "a" Then 'ne se plante pas sur un vrai libellé Exit Sub Else If ActiveCell.Value = " " Then ' ne s'arrête pas si nous avons un blanc dans
la colonne copiée ActiveCell.Value = 0 Selection.NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Valeur Else If ActiveCell.Value <> 0 Then ActiveCell.Value = conversion(ActiveCell.Value) Selection.NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Valeur Else Exit Sub End If End If End If End If End Sub
Cette macro fait la conversion des copies partielle d'écran As400 en vraies
valeurs dans excel . exemple copie écran : 16,79CR 1.089,86 <---- ici on récupère un blanc 1.089,86-
La fonction conversion est :
'-------------- 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 '----------------
@+
if activecell.hasFormula then
<c'est une formule>
else
<ce n'est pas une formule>
endif
Cordialement,
AP
PS: tu es apparenté aux II ?
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message
de news:18942CE8-1F03-46AF-AD17-E7A9C09A65DF@microsoft.com...
Bonjour à tous
1 ) Par quelle instruction puis-je savoir si dans Active.cell j'ai une
fonction ? ceci afin de ne pas la tuer par ma Macro qui change les
libellés
et les numériques en numérique
2 ) La macro à modifiée est :
Sub Valeur()
If ActiveCell.Value > " " And ActiveCell.Value < " zz" Then ' ainsi la
macro ne se plante pas sur un libellé
Exit Sub
Else
If ActiveCell.Value > "a" Then 'ne se plante pas sur un vrai libellé
Exit Sub
Else
If ActiveCell.Value = " " Then ' ne s'arrête pas si nous avons un blanc
dans
la colonne copiée
ActiveCell.Value = 0
Selection.NumberFormat = "#,##0.00"
ActiveCell.Offset(1, 0).Select
Valeur
Else
If ActiveCell.Value <> 0 Then
ActiveCell.Value = conversion(ActiveCell.Value)
Selection.NumberFormat = "#,##0.00"
ActiveCell.Offset(1, 0).Select
Valeur
Else
Exit Sub
End If
End If
End If
End If
End Sub
Cette macro fait la conversion des copies partielle d'écran As400 en
vraies
valeurs dans excel .
exemple copie écran :
16,79CR
1.089,86
<---- ici on récupère un blanc
1.089,86-
La fonction conversion est :
'--------------
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
'----------------
if activecell.hasFormula then <c'est une formule> else <ce n'est pas une formule> endif
Cordialement,
AP
PS: tu es apparenté aux II ?
"Jean-Paul V" a écrit dans le message de news:
Bonjour à tous
1 ) Par quelle instruction puis-je savoir si dans Active.cell j'ai une fonction ? ceci afin de ne pas la tuer par ma Macro qui change les libellés
et les numériques en numérique
2 ) La macro à modifiée est :
Sub Valeur() If ActiveCell.Value > " " And ActiveCell.Value < " zz" Then ' ainsi la macro ne se plante pas sur un libellé Exit Sub Else If ActiveCell.Value > "a" Then 'ne se plante pas sur un vrai libellé Exit Sub Else If ActiveCell.Value = " " Then ' ne s'arrête pas si nous avons un blanc dans
la colonne copiée ActiveCell.Value = 0 Selection.NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Valeur Else If ActiveCell.Value <> 0 Then ActiveCell.Value = conversion(ActiveCell.Value) Selection.NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Valeur Else Exit Sub End If End If End If End If End Sub
Cette macro fait la conversion des copies partielle d'écran As400 en vraies
valeurs dans excel . exemple copie écran : 16,79CR 1.089,86 <---- ici on récupère un blanc 1.089,86-
La fonction conversion est :
'-------------- 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 '----------------
@+
Jean-Paul V
Bonjour
Merci ça marche en regardant de + près ta conversion j'ai vu un ElseIf qui devrait m'économiser un ou plusieurs End If .
Que veut dire CDbl dans ta macro ?
PS Je ne suis pas de la famille II , V n'est pas le chiffre romain mais le V de la Victoire , de + malgrè ta conversion j'ai perdu la foi , j'ai essayé de relire le pari de Pascal rien n'y fait , la Pietà de Michel-Ange à Saint-Pierre revue sur ARTE y parvient presque !
Cordialement Jean-Paul
if activecell.hasFormula then <c'est une formule> else <ce n'est pas une formule> endif
Cordialement,
AP
PS: tu es apparenté aux II ?
"Jean-Paul V" a écrit dans le message de news:
Bonjour à tous
1 ) Par quelle instruction puis-je savoir si dans Active.cell j'ai une fonction ? ceci afin de ne pas la tuer par ma Macro qui change les libellés
et les numériques en numérique
2 ) La macro à modifiée est :
Sub Valeur() If ActiveCell.Value > " " And ActiveCell.Value < " zz" Then ' ainsi la macro ne se plante pas sur un libellé Exit Sub Else If ActiveCell.Value > "a" Then 'ne se plante pas sur un vrai libellé Exit Sub Else If ActiveCell.Value = " " Then ' ne s'arrête pas si nous avons un blanc dans
la colonne copiée ActiveCell.Value = 0 Selection.NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Valeur Else If ActiveCell.Value <> 0 Then ActiveCell.Value = conversion(ActiveCell.Value) Selection.NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Valeur Else Exit Sub End If End If End If End If End Sub
Cette macro fait la conversion des copies partielle d'écran As400 en vraies
valeurs dans excel . exemple copie écran : 16,79CR 1.089,86 <---- ici on récupère un blanc 1.089,86-
La fonction conversion est :
'-------------- 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 '----------------
@+
Bonjour
Merci ça marche en regardant de + près ta conversion j'ai vu un ElseIf qui
devrait m'économiser un ou plusieurs End If .
Que veut dire CDbl dans ta macro ?
PS Je ne suis pas de la famille II , V n'est pas le chiffre romain mais le
V de la Victoire , de + malgrè ta conversion j'ai perdu la foi , j'ai essayé
de relire le pari de Pascal rien n'y fait , la Pietà de Michel-Ange à
Saint-Pierre revue sur ARTE y parvient presque !
Cordialement
Jean-Paul
if activecell.hasFormula then
<c'est une formule>
else
<ce n'est pas une formule>
endif
Cordialement,
AP
PS: tu es apparenté aux II ?
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message
de news:18942CE8-1F03-46AF-AD17-E7A9C09A65DF@microsoft.com...
Bonjour à tous
1 ) Par quelle instruction puis-je savoir si dans Active.cell j'ai une
fonction ? ceci afin de ne pas la tuer par ma Macro qui change les
libellés
et les numériques en numérique
2 ) La macro à modifiée est :
Sub Valeur()
If ActiveCell.Value > " " And ActiveCell.Value < " zz" Then ' ainsi la
macro ne se plante pas sur un libellé
Exit Sub
Else
If ActiveCell.Value > "a" Then 'ne se plante pas sur un vrai libellé
Exit Sub
Else
If ActiveCell.Value = " " Then ' ne s'arrête pas si nous avons un blanc
dans
la colonne copiée
ActiveCell.Value = 0
Selection.NumberFormat = "#,##0.00"
ActiveCell.Offset(1, 0).Select
Valeur
Else
If ActiveCell.Value <> 0 Then
ActiveCell.Value = conversion(ActiveCell.Value)
Selection.NumberFormat = "#,##0.00"
ActiveCell.Offset(1, 0).Select
Valeur
Else
Exit Sub
End If
End If
End If
End If
End Sub
Cette macro fait la conversion des copies partielle d'écran As400 en
vraies
valeurs dans excel .
exemple copie écran :
16,79CR
1.089,86
<---- ici on récupère un blanc
1.089,86-
La fonction conversion est :
'--------------
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
'----------------
Merci ça marche en regardant de + près ta conversion j'ai vu un ElseIf qui devrait m'économiser un ou plusieurs End If .
Que veut dire CDbl dans ta macro ?
PS Je ne suis pas de la famille II , V n'est pas le chiffre romain mais le V de la Victoire , de + malgrè ta conversion j'ai perdu la foi , j'ai essayé de relire le pari de Pascal rien n'y fait , la Pietà de Michel-Ange à Saint-Pierre revue sur ARTE y parvient presque !
Cordialement Jean-Paul
if activecell.hasFormula then <c'est une formule> else <ce n'est pas une formule> endif
Cordialement,
AP
PS: tu es apparenté aux II ?
"Jean-Paul V" a écrit dans le message de news:
Bonjour à tous
1 ) Par quelle instruction puis-je savoir si dans Active.cell j'ai une fonction ? ceci afin de ne pas la tuer par ma Macro qui change les libellés
et les numériques en numérique
2 ) La macro à modifiée est :
Sub Valeur() If ActiveCell.Value > " " And ActiveCell.Value < " zz" Then ' ainsi la macro ne se plante pas sur un libellé Exit Sub Else If ActiveCell.Value > "a" Then 'ne se plante pas sur un vrai libellé Exit Sub Else If ActiveCell.Value = " " Then ' ne s'arrête pas si nous avons un blanc dans
la colonne copiée ActiveCell.Value = 0 Selection.NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Valeur Else If ActiveCell.Value <> 0 Then ActiveCell.Value = conversion(ActiveCell.Value) Selection.NumberFormat = "#,##0.00" ActiveCell.Offset(1, 0).Select Valeur Else Exit Sub End If End If End If End If End Sub
Cette macro fait la conversion des copies partielle d'écran As400 en vraies
valeurs dans excel . exemple copie écran : 16,79CR 1.089,86 <---- ici on récupère un blanc 1.089,86-
La fonction conversion est :
'-------------- 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 '----------------
@+
Clément Marcotte
Bonjour,
Que veut dire CDbl dans ta macro ?
C'est une fonction de conversion. Il s'agit de prendre une donnée qui a au moins l'air d'un nombre et de la convertir en nombre à virgule flottante à précision étendue. (Double précision en anglais ==> environ 16 chiffres significatifs.)
Bonjour,
Que veut dire CDbl dans ta macro ?
C'est une fonction de conversion. Il s'agit de prendre une donnée qui a au
moins l'air d'un nombre et de la convertir en nombre à virgule flottante à
précision étendue. (Double précision en anglais ==> environ 16 chiffres
significatifs.)
C'est une fonction de conversion. Il s'agit de prendre une donnée qui a au moins l'air d'un nombre et de la convertir en nombre à virgule flottante à précision étendue. (Double précision en anglais ==> environ 16 chiffres significatifs.)