IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA Excel - Affecter un % [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    coordinatrice adv
    Inscrit en
    Mai 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : coordinatrice adv
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2014
    Messages : 27
    Par défaut VBA Excel - Affecter un %
    Bonjour,

    débutante sur vba, si quelqu'un peut m'aider svp.
    j'ai un onglet qui s'appelle "tarifs"
    la colonne C contient le montant pour l'année 2016.
    pour 2017 je souhaiterais que l’utilisateur mette le pourcentage d'augmentation et que ça lui donne le montant 2017.
    montant année 2016 + taux de pourcentage =montant pour l'année 2017 à affecter sur l'ensemble des codes articles

    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub tarifs()
    Dim Taux As Single
    Taux = InputBox("Saisir le taux de cette année selon votre barème svp")
    For Each Cellule In Selection
    Cellule.Value = Cellule.Value * (1 + Taux / 100)
    Next Cellule
    End Sub
    sachant que cela sera toujours l'année en cours pour effectuer le calcul
    mais cela me fait une erreur..
    "Erreur d'execution 1004" " Erreur définie pr l'application ou par l'objet"

    merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Il est possible que cela vienne du selection si tu as rien selectionné

  3. #3
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Je pencherais pour une erreur sur le séparateur.

    Si tu veux un taux à virgule tu vas devoir taper 5,5 et pas 5.5.
    De plus tu devrais déclarer la variable Cellule avec Dim Cellule As Range.

    Cet ajout plus une gestion erreur sur le fait que le contenu de l'Inputbox soit numérique devrait régler ton problème.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Il est regrettable que le message d'erreur reçu et la ligne de code concernée ne nous soient pas communiqués et qu'il nous faille en conséquence faire des "hypothèses".
    Je pencherais (mais ce n'est qu'une hypothèse, donc ) pour une saisie qui, non numérique, ne se prête pas à une opération arithmétique.
    Je suggère, en lieu et place d'une simple inputbox, l'utilisation de Application.InputBox avec son argument Type=1. cela forcera l'utilisateur à saisir un numérique.

  5. #5
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    Bonjour,
    Je viens d'essayer votre code tel quel et je n'ai pas d'erreurs... si je tape la virgule et pas un point il faut donc tester la réponse avant d'effectuer, avec replace par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub tarifs()
    Dim Taux As String
    Taux = InputBox("Saisir le taux de cette année selon votre barème svp")
    If InStr(Taux, ".") Then Taux = CDec(Replace(Taux, ".", ","))
     
    For Each Cellule In Selection
    Cellule.Value = Cellule.Value * (1 + Taux / 100)
    Next Cellule
    End Sub
    bonne soirée
    geogeo

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour !

    Juste en passant, tu n'as même pas besoin de tester ‼

    Voilà, voilà !

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  7. #7
    Membre averti
    Femme Profil pro
    coordinatrice adv
    Inscrit en
    Mai 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : coordinatrice adv
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2014
    Messages : 27
    Par défaut
    bonjour,

    je viens de reprendre ton code, cela ne me fait plus d'erreur mais le calcul ne se fait pas
    encore merci à vous tous.

    Citation Envoyé par geogeo70 Voir le message
    Bonjour,
    Je viens d'essayer votre code tel quel et je n'ai pas d'erreurs... si je tape la virgule et pas un point il faut donc tester la réponse avant d'effectuer, avec replace par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub tarifs()
    Dim Taux As String
    Taux = InputBox("Saisir le taux de cette année selon votre barème svp")
    If InStr(Taux, ".") Then Taux = CDec(Replace(Taux, ".", ","))
     
    For Each Cellule In Selection
    Cellule.Value = Cellule.Value * (1 + Taux / 100)
    Next Cellule
    End Sub
    bonne soirée
    geogeo
    Merci à vous tous,

    sauf que cela ne me fait plus d'erreur mais je n'ai aucun résultat,

    ma colonne c = montant année 2016
    ma colonne d = montant année 2017
    une fois que l'utilisateur aura taper son taux il faudrait que le montant apparaît en colonne d

    mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Tarifs()
    Dim Taux As Single
        Sheets("Tarifs").Activate
        Taux = InputBox("Veuillez indiquer le pourcentage d'augmentation du prix.", "Pourcentage d'augmentation du prix")
        If InStr(Taux, ".") Then Taux = CDec(Replace(Taux, ".", ","))
     
    For Each Cellule In Selection
    Cellule.Value = Cellule.Value * (1 + Taux / 100)
    Next Cellule
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/08/2016, 06h05
  2. [VBA-excel] Affecter une date à la première cellule pleine
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 10/11/2006, 12h06
  3. [VBA-Excel] affecter la valeur infinie à une variable
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/09/2006, 21h37
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo