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 :

Ajouts colonnes avec valeurs fixes et variables [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    chef de projets Systeme d'information
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chef de projets Systeme d'information
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Ajouts colonnes avec valeurs fixes et variables
    Bonjour,

    Je dispose d'un fichier excel organiser en colonnes de A à J (numero de commande / date de fabrication / numero de palette/...) avec des entêtes de colonnes.
    Je désirais ajouter trois colonnes sur la gauche du tableau.

    Le première colonne insérée met un numero de lignes de 1 à n par commande
    J’insère donc une colonne en A et je numéroté avec le code ci-dessous mais je n'arrive pas a gérer le changement de numéro de commande qui peut se produire n'importe ou dans le fichier.

    une idée??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub inserer_num_lignes()
     
    Dim Plg As Range, c As Range, i As Long
     
    ' définition de la plage
    Set Plg = ActiveCell.CurrentRegion
     
    ' insertion d’une colonne à gauche
    Plg.Columns(1).Insert
     
    ' ajout numero
     
    i = 1
    For Each c In Plg.Columns(1).Cells.Offset(1, -1)
    c = i
    i = i + 1
    Next c
     
    End Sub
    Les deux colonnes suivantes devront reprendre sur chaque ligne une valeur fixe sur toutes les lignes du tableau mais je n'ai pas trouvé de commande pour faire cela.

    J’espère avoir été clair, merci par avance pour votre aide.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bonsoir,

    il faut mémoriser le numéro de commande et repasser à 1 ton compteur i à chaque changement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Option Explicit
     
    Sub inserer_num_lignes()
     
    Dim Plg As Range, c As Range, i As Long
    Dim mNumCde As String 'Mémorise numéro de commande
    ' définition de la plage
    Set Plg = ActiveCell.CurrentRegion '==> ATTENTION POSITION DU CURSEUR POUR LANCEMENT MACRO!!!
     
    ' insertion d’une colonne à gauche
    Plg.Columns(1).Insert
     
    ' ajout numero
     
    i = 1
    mNumCde = Plg.Cells(1, 2) 'Mémorise Numéro de commande
    For Each c In Plg.Columns(1).Cells.Offset(, -1)
        If mNumCde <> c.Offset(, 1).Text Then
                i = 1
                mNumCde = c.Offset(, 1).Text 'Mémorise Nouveau numéro de cde
        End If
        c = i
        i = i + 1
    Next c
     
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    chef de projets Systeme d'information
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chef de projets Systeme d'information
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoup bbil cela marche parfaitement

    je vais prendre en compte également ta remarque sur le placement du curseur

    encore une petite question, comment pourrais-je faire pour ajouter un nouvelle colonne à gauche avec la même valeur de type alpha sur l'ensemble des lignes?

  4. #4
    Membre à l'essai
    Homme Profil pro
    chef de projets Systeme d'information
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chef de projets Systeme d'information
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Alors grace a bbil, j'ai trouvé ma solution la voici !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub deposant()
     
    Range("A1").Select
     
    Dim Plg As Range, c As Range, i As Long
    ' définition de la plage
     
    Set Plg = ActiveCell.CurrentRegion
     
    ' insertion d’une colonne à gauche
    Plg.Columns(1).Insert
     
    ' ajout valeur déposant
     
    For Each c In Plg.Columns(1).Cells.Offset(0, -1)
     
        c = "BACA"
     
    Next c
     
    ' ajout entete de colonne
     
    Range("A1").FormulaR1C1 = "DEPOSANT"
     
    End Sub
    encore un grand merci !

    j’espère avoir l'occasion d'en apprendre encore beaucoup et un jour pouvoir aider ceux qui en auront besoin...

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

Discussions similaires

  1. Ajout de colonnes avec valeur
    Par Yaone dans le forum Langage SQL
    Réponses: 10
    Dernier message: 31/01/2013, 15h32
  2. Somme d'une colonne (avec nombre de rangée variable)
    Par Berny77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2008, 23h30
  3. [AJAX] Ajout input avec valeur venant de XML
    Par zulot dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/02/2007, 12h05
  4. Supprimer une colonne avec valeurs par défaut
    Par SlashOwnsU dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 18/09/2006, 10h10
  5. Réponses: 2
    Dernier message: 08/09/2006, 11h04

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