[VBA-EXCEL] macro pour inverser un nombre
Résolu/Fermé
anyah
Messages postés
58
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2008
-
9 oct. 2008 à 10:21
steph - 16 juil. 2024 à 16:23
steph - 16 juil. 2024 à 16:23
A voir également:
- Inverser selection excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Inverser ecran pc - Guide
- Inverser deux colonnes excel - Guide
- Word et excel gratuit - Guide
11 réponses
anyah
Messages postés
58
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2008
6
9 oct. 2008 à 11:59
9 oct. 2008 à 11:59
dsl c'etait la mauvaise version ( elle rajoutait un zero dans les cases vides) voila la bonne , j'espere que ca aidera quelqu'un un jour....
Public Sub inverser() Dim cell As Range For Each cell In Selection.Cells If cell.Value <> "" Then If cell.Value <> "N/A" Then With cell .Value = -cell.Value End With End If End If Next cell End Sub
photodia56
Messages postés
2326
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
20 novembre 2019
152
9 oct. 2008 à 10:27
9 oct. 2008 à 10:27
C'est probablement pas la solution la plus élégante mais tu devrais pouvoir utiliser la fonction "si".
Par exemple: "si (ton résultat <0) alors "= (- ton résultat)"
Ma présentation est fausse mais c'est dans cet esprit.
Par exemple: "si (ton résultat <0) alors "= (- ton résultat)"
Ma présentation est fausse mais c'est dans cet esprit.
Leahkim
Messages postés
3081
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
281
9 oct. 2008 à 10:29
9 oct. 2008 à 10:29
oui c'est comme ça qu'il vaut mieux faire:
syntaxe exacte:
=SI(A1<0;-A1;A1)
par macro ça donne:
if (range("A1").value<0 then range("A1").value = -range("A1").value
il en faut pas plus
syntaxe exacte:
=SI(A1<0;-A1;A1)
par macro ça donne:
if (range("A1").value<0 then range("A1").value = -range("A1").value
il en faut pas plus
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
9 oct. 2008 à 10:33
9 oct. 2008 à 10:33
Bonjour,
Il y a aussi la fonction ABS(tonnombre) cad "valeur absolue"
mais pourquoi avoir mis cette question en Programmation? c'est plutôt de la bureautique...de toutes façons c'est la m^me fonction en VBA
Il y a aussi la fonction ABS(tonnombre) cad "valeur absolue"
mais pourquoi avoir mis cette question en Programmation? c'est plutôt de la bureautique...de toutes façons c'est la m^me fonction en VBA
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
anyah
Messages postés
58
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2008
6
9 oct. 2008 à 10:49
9 oct. 2008 à 10:49
en fait j'ai enormement de cellules a changer (10 plages de 5 cellules sur 12 feuilles) donc je voulais un moyen plus rapide que d'aller faire une fonction excel dans chaque cellule. je voudrais selectionner une plage de cellule et lancer une macro pour que ca passe soit en negatif soit en positif ( j'ai les deux cas).
Leahkim
Messages postés
3081
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
281
9 oct. 2008 à 10:51
9 oct. 2008 à 10:51
dans ce cas je te conseille une macro comme celle que je t'ai mise, sauf qu'elle prendrait la cellule selectionnée au lieu de A1 ainsi:
Selection.value = -Selection.value
y a pas besoin de plus, tu selectionne ta case, et tu fais ton raccourci pour lancer ta macro
Selection.value = -Selection.value
y a pas besoin de plus, tu selectionne ta case, et tu fais ton raccourci pour lancer ta macro
anyah
Messages postés
58
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2008
6
9 oct. 2008 à 10:56
9 oct. 2008 à 10:56
ya t'il moyen d'appliquer cette macro a plusieurs cellules en mm tps?
Leahkim
Messages postés
3081
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
281
9 oct. 2008 à 11:01
9 oct. 2008 à 11:01
ba la je sèche un peu ...
a moins de se prendre la tete et de tester les cellules alentours, et si elles ont une valuer, l'inverser...
a moins de se prendre la tete et de tester les cellules alentours, et si elles ont une valuer, l'inverser...
anyah
Messages postés
58
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2008
6
9 oct. 2008 à 11:31
9 oct. 2008 à 11:31
bon ce n'est pas tres joli la facon odont jai fait ca mais voila le resultat
sub inverser()
Dim i As Integer
For i = 1 To 7
If Selection.Cells(i, 1).Value <> "N/A" Then
With Selection
.Cells(i, 1).Value = -Selection.Cells(i, 1).Value
End With
End If
Next i
End Sub
je ne suis pa arriver a trouver comment remplacer 7 par une variable ( nombre de ligne selectionnées ca sera toujours 7)
si vous arriver à trouver une amélioration je suis preneuse :)
merci pour vos réponses
sub inverser()
Dim i As Integer
For i = 1 To 7
If Selection.Cells(i, 1).Value <> "N/A" Then
With Selection
.Cells(i, 1).Value = -Selection.Cells(i, 1).Value
End With
End If
Next i
End Sub
je ne suis pa arriver a trouver comment remplacer 7 par une variable ( nombre de ligne selectionnées ca sera toujours 7)
si vous arriver à trouver une amélioration je suis preneuse :)
merci pour vos réponses
anyah
Messages postés
58
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2008
6
9 oct. 2008 à 11:56
9 oct. 2008 à 11:56
bon j'ai encore trouvé mieux je pense que ce coup-ci c'est pas mal car on peut faire la selection de cellules que l'on veut
Public Sub inverser() Dim cell As Range For Each cell In Selection.Cells If cell.Value <> "N/A" Then With cell .Value = -cell.Value End With End If Next cell End Sub
16 juil. 2024 à 16:23
Génial, merci