Comment doubler une valeur en ajoutant 1
La multiplication est avec l'addition, la soustraction et la division une des quatre opérations de base de l'arithmétique. La multiplication est en réalité une addition déguisée, ce qui fait que vous pouvez multiplier en faisant des additions très simples, mais nombreuses, car répétitives. Cela ne marche que pour les chiffres, quand vient le temps de multiplier des nombres, l'opération doit être posée d'une certaine façon. Le calcul est alors un mélange de petites multiplications et d'additions.
Principe simple : doubler puis ajouter 1
Si vous souhaitez doubler une valeur et ensuite ajouter 1, la démarche arithmétique est directe : effectuez la multiplication par 2 (qui revient à additionner la valeur à elle-même) puis ajoutez 1 au résultat. Ainsi, pour multiplier 5 par 2, ajoutez 5 deux fois de suite : 5 + 5 = 10, puis ajoutez 1 pour obtenir 11. De façon générale, doubler n'est qu'une forme d'addition répétée ; pour doubler 7 on fait 7 + 7 = 14, puis 14 + 1 = 15.
Applications pratiques et méthodes manuelles
Pour multiplier des nombres longs, placez le plus grand au-dessus du plus petit. Ensuite, multipliez le dernier chiffre du petit nombre par chacun des chiffres du nombre du haut. Si le résultat a deux chiffres, posez l'unité sous le chiffre multiplicateur du bas, et écrivez en petit la retenue au-dessus du prochain chiffre du haut. Inscrivez chaque résultat sous la ligne en dessous du problème et n'oubliez pas de compter la retenue. Si le nombre du bas est composé de deux chiffres, mettez un zéro sous la réponse du premier chiffre multiplié et recommencez à multiplier avec le second chiffre. Si le nombre du bas comporte d'autres chiffres, ajoutez chaque fois un zéro sous la ligne de résultats.
Continuez ainsi jusqu'à ce que vous ayez multiplié tous les chiffres du bas par tous les chiffres du haut. Faites ensuite verticalement l'addition de toutes les lignes de résultats et vous aurez votre résultat définitif. En pratique, pour doubler une valeur, cette procédure complète de multiplication est souvent inutile : doubler s'obtient par addition répétée ou par déplacement simple des chiffres dans certaines bases (par exemple, multiplier par 10 consiste à ajouter un 0 à droite). Mais pour des opérations manuelles posées, la méthode est la même que pour toute multiplication.
Exemples numériques
Ainsi, pour multiplier 5 par 3, ajoutez 5 trois fois de suite : 5 + 5 + 5 = 15. Pour doubler 5 puis ajouter 1 : 5 + 5 = 10 → 10 + 1 = 11. Pour doubler 320 puis ajouter 1, on peut multiplier 320 par 2 (320 + 320 = 640) puis ajouter 1 pour obtenir 641. Par écrit, inscrivez 320, puis procédez à la multiplication par 2 en allant de droite à gauche si nécessaire, en gérant les retenues comme pour toute multiplication posée.
Lire aussi: La Taxe sur la Valeur Ajoutée expliquée
Cas d'usage en programmation : incrémentation basée sur la dernière saisie
Dans des tableurs ou des scripts, l'opération "doubler une valeur en ajoutant 1" peut être traduite en une simple expression arithmétique : nouvelle_valeur = ancienne_valeur * 2 + 1. Cependant, en contexte d'automatisation de numérotation (par exemple dans une colonne A d'un fichier Excel), on rencontre souvent des besoins différents : incrémenter la dernière valeur saisie de +1, ou calculer une nouvelle valeur basée sur la valeur maximale présente.
Bonjour, Dans mon fichier exemple joint lorsque je double clic sur la dernière cellule vide de la colonne « A » cette dernière augmente la numérotation de « +1 ». Tout marche bien mais je voudrais que cette incrémentation ne se fasse pas sur la valeur max comme dans le module avec la ligne de code Target = Application.Max(Columns(1)) + 1 Mais de plus 1 sur la dernière valeur saisie dans la colonne « A ».
Si l'objectif est d'ajouter 1 à la dernière valeur saisie et non à la valeur maximale, il faut détecter la dernière cellule remplie (par exemple en descendant la colonne ou en utilisant une méthode qui repère la dernière entrée) puis affecter la nouvelle valeur comme dernière_valeur + 1. Attention toutefois : Avec ce que tu demandes, tu cours le risque d'avoir des doublons si un utilisateur modifie manuellement des enregistrements anciens. Il arrive exceptionnellement que je dois saisir un numéro manuellement d’un enregistrement d'une autre personne dans ce tableau. Je sais ce n'est pas très clair ce que je dis mais concrètement je peux me retrouver à avoir une valeur dans colonne "A" supérieur à la dernière saisie et qui fausserait ma numérotation "normale".
Bonnes pratiques pour les numérotations automatiques
- Définir clairement la règle : incrémenter la dernière valeur saisie vs incrémenter par rapport à la valeur maximale.
- Gérer les exceptions : permettre la saisie manuelle ponctuelle et prévoir une vérification des doublons.
- En cas d'utilisation d'un tableau structuré, exploiter l'objet ListObject en VBA, qui représente une table de données et possède des méthodes et propriétés spécifiques.
- Contrôler les références et les noms de variables réservées dans les macros (par exemple, précéder Date par VBA.Date si nécessaire pour lever des ambiguïtés).
Point 1 : ListObject - Quand on met les données sous forme de tableau (ou table de données), son équivalent en VBA est ListObject. Cet objet a des méthodes et des propriétés spécifiques. Point 2 : Tu me poses une colle, car Date doit fonctionner (et ceci pour toutes les versions d'Excel). Mais parle-t-on de mon classeur sous Excel 2010 ? Essaie de remplacer : .Cells(1, 2).Value = Date par : .Cells(1, 2).Value = VBA.Date.
12 conseils pour éviter la manipulation médiatique - Christophe Brochier
Résolution de problèmes fréquents en VBA
Dans VBE 'Outils / Références...' tu n'en aurais pas une marquée Manquante des fois ? Si oui, la décocher. J'avais dans VBE 'Outils / Références...' une ligne marquée Manquante. Je l'ai décochée et c'est OK. Merci. Bravo Jean-Eric pour ta suggestion juste en rajoutant "VBA." devant la variable et c'est bingo. Du coup je l'ai mis également devant "UCase(code)" que j'avais dans mon module de départ et qui buggait de la même manière que "date" et c'est OK également. Comment tu as fait pour trouver ce truc de "VBA." à ajouter devant la variable ? C'est super et encore merci.
Lire aussi: Évolutions de la CVAE
Résumé et formules utiles
Résumé de l'article : Si vous voulez apprendre à multiplier, n’oubliez pas que la multiplication n'est qu'une forme avancée de l'addition. Ainsi, pour doubler une valeur et ajouter 1, appliquez simplement : nouvelle_valeur = ancienne_valeur * 2 + 1. Pour des numérotations automatiques dans un tableur, choisissez entre Application.Max(Columns(1)) + 1 (pour la valeur maximale +1) ou la lecture de la dernière cellule remplie +1 (pour suivre la dernière saisie), en gardant à l'esprit les risques de doublons et la nécessité de gérer les exceptions manuelles.
| Situation | Formule ou méthode |
|---|---|
| Doubler une valeur puis ajouter 1 | nouvelle_valeur = ancienne_valeur * 2 + 1 |
| Incrémenter par rapport à la valeur max en colonne A | Target = Application.Max(Columns(1)) + 1 |
| Incrémenter par rapport à la dernière saisie | lire la dernière cellule non vide de la colonne puis +1 |
| Utiliser Date dans VBA (éviter les conflits) | Cells(1,2).Value = VBA.Date |
Lire aussi: Obligations et modalités du partage de la valeur pour les PME
balises:
