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

Excel Discussion :

Insertion de colonne avec tableau de calcul avec macro VBA


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Dessinateur industriel
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Dessinateur industriel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Par défaut Insertion de colonne avec tableau de calcul avec macro VBA
    Bonjour tous le monde,

    Je souhaite réaliser un tableau de calcul pour obtenir des pas et des longueur pour une vis de sélection. Sauf que je n'ai quasiment pas de notion en VBA...
    J'explique ce que je souhaite faire:

    J'ai trois tableau :

    ... A B
    2 Nombre de pas intermédiaire 2
    3 Longueur vis 800

    Ici on change le nombre de pas intermédiaire et la longueur de vis.

    Deuxième tableau :

    ... A B C
    8 Pas d'entrée Pas fixe
    9 Pas 80 280
    10 Longueur 100 300

    Les valeurs sont à modifier suivant la vis que l'on souhaite. Elles sont insérés dans le dernier tableau qui doit être modulable :

    ... F G H I
    8 Entrée Pas intermédiaire Sortie
    9 Pas 80 280
    10 Longueur 100 300

    Les valeurs d'entrée et sortie correspondent à celle du deuxième tableau.

    Ce que je souhaite faire c'est intégrer un nombre X de pas intermédiaire dans mon tableau, on entre la valeur 2 dans le premier tableau et on obtient 2 colonnes dans le dernier tableau.
    J'ai réussi à obtenir ce résultat en associant ma macro a un bouton, ça marche mais si je veux diminuer mon nombre de colonne, les colonnes qui sont déjà présente vont rester et ma macro va en ajouter des nouvelles. J'aimerai réussir à lier ma valeur en B2 aux nombre de colonne, ça ajoute et supprime automatiquement suivant le nombre.
    De plus j'aimerai conserver une futur formule dans chaque colonne ajouté.

    Concernant le formule, je ne pense avoir également besoin d'une macro qui suit le nombre de colonne ajouté, puisque je souhaiterai une formule qui proportionne les pas, c'est à dire :
    Si on prend les chiffres du tableau concernant la ligne des pas :
    En entrée on a 80, en sortie 280 et qu'on souhaite avoir un seul pas intermédiaire, la valeur serait alors de 180 (80/180/280) et de même avec plusieurs colonnes (80/.../.../.../280). C'est pour obtenir un pas progressif.
    Cependant pour la ligne longueur on doit tenir compte de la longueur max en "B3" qui est de 800, c'est a dire que suivant le nombre de pas intermédiaire, la longueur total doit rester égal à la valeur de "B3" (800 ici).


    Voici le seul bout de code que j'ai pour le moment et qui me permet d’insérer une colonne:

    Sub Insert_colonne()
    '
    ' Insert_colonne Macro
    ' Insert le nombre de colonne indiqué par la cellule B2
    '
    ' Touche de raccourci du clavier: Ctrl+c
    '
    Dim NbrColonne As String

    NbrColonne = Range("B2").Value

    If NbrColonne <> "" Then
    If IsNumeric(NbrColonne) Then
    Range("H8").Resize(, NbrColonne).EntireColumn.Insert Shift:=xlToRight
    End If
    End If
    End Sub


    Voila, en espérant être assez clair et que vous allez pouvoir m'aider dans mon inexpérience en VBA !

  2. #2
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Voila, en espérant être assez clair et que vous allez pouvoir m'aider dans mon inexpérience en VBA !
    Bien sûr, savoir automatiser des actions à l'aide de code VBA est un net avantage mais la nécessité d'arriver à un but peut conduire à une autre réaction et à une utilisation réfléchie des fonctions natives d'Excel pour obtenir le résultat attendu à l'aide de formules.
    Le tableau de choix du nombre de pas et de la longueur finale étant en A2:B3, le second tableau en A8:C10 et le tableau des pas intermédiaires commençant en F8:G10
    (voir classeur joint) il suffit de trois formules ici pour recréer complètement le tableau attendu.
    En H8, écrire la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI((COLONNE()-7)<=$B$2;"Pas Intermédiaire "&(COLONNE()-7);SI((COLONNE()-7)=$B$2+1;"Sortie";""))
    En H9 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI((COLONNE()-7)<=$B$2+1;G9+($C$9-$B$9)/($B$2+1);"")
    EN H10 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI((COLONNE()-7)<=$B$2+1;G10+($B$3+$C$10*($B$3="")-$B$10)/($B$2+1);"")
    Recopier ces trois formules vers la droite (dans le classeur joint, ces formules ont été recopiées jusqu'en colonne O ce qui limite le nombre de pas intermédiaires à un maximum de 7)
    Une MFC sur la plage I8:O10 permet de placer des bordures en encadrement des cellules non vides pour l'aspect du tableau.
    Cordialement
    Claude
    Fichiers attachés Fichiers attachés

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Dessinateur industriel
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Dessinateur industriel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Par défaut
    Bonjour Claude,

    Je te remercie pour ta réponse, il vrai que les formules natives d'excel sont puissantes mais à ce point je ne pensais pas !

    J'essai de comprendre les formules :

    Pour la ligne "pas":

    (COLONNE()-7)<=$B$2 "Permet d'ajouter une colonne"

    G9+($C$9-$B$9)/($B$2+1) "Fait la moyenne à partir de la valeur de la cellule précédente et du pas d'entrée et fixe suivant le nombre de colonnes ajoutées"

    Jusque la, il me semble avoir tout compris.

    Par contre pour la ligne longueur c'est autre chose...

    J'ai remarqué que la formule est ressemblante mais ne correspond pas exactement à ce que je souhaiterais, les valeurs que l'on rentre dans le tableau de pas d'entrée/fixe, doivent se retrouver dans le dernier tableau. C'est la somme du pas d'entrée, du pas fixe et des pas intermédiaires qui correspondent à la longueur total du premier tableau (dans l'exemple ici c'est 800).
    Du coup en essayant de reprendre la formule je ne sais pas comment intégrer une somme égale à la cellule B3 tout en gardant mon pas de sortie égale a la longueur du pas fixe C10

    Ci joint le tableau pour expliquer plus en détails ce que je n'arrive pas à faire.

    En te remerciant encore.

    Intermédiaire.xlsx

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/08/2012, 14h51
  2. Réponses: 7
    Dernier message: 11/08/2012, 17h49
  3. [CSS 2] Transformation d'un design avec tableau en design avec div
    Par sinasquax dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 17/12/2009, 13h02
  4. Réponses: 11
    Dernier message: 01/03/2008, 16h59
  5. Nouveau problème avec un tableau Excel et une macro VBA
    Par valouche dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/06/2007, 09h30

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