1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    décembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 19
    Points : 8
    Points
    8

    Par défaut Insérer une colonne VBA

    Bonjour à tous,

    Je suis novice en VBA et je suis là pour avoir des conseils. Je voudrais insérer quelques lignes dans un codé déjà existant.

    Ce code génère un nombre x de cas (voir le code ci-dessous) et je souhaiterais insérer une colonne (A exemple) où chaque ligne (x,A en exemple) sera rempli avec le chiffre "x" jusqu’à la dernière valeur de la boucle.

    En espérant avoir était assez clair. Je vous remercie par avance de votre aide.

    Cordialement,

    Riilcy


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub Macro1()
    '
    ' Macro1 Macro
    Sheets("Combinatoire").Select
    Columns("A:K").Select
    Selection.ClearContents
     
     
    Total = Sheets("Paramètres").Cells(4, 13)
    saut = 1
     
     
    Nbcritere = 0
    For Numcritere = 1 To 11 Step 1
        If Sheets("Paramètres").Cells(4, Numcritere + 1) = "" Then
        Exit For
        Else
        Nbcritere = Nbcritere + 1
        End If
    Next
     
    For Numcritere = 1 To Nbcritere Step 1
    Nb = Sheets("Paramètres").Cells(4, Numcritere + 1)
    Nomcritere = Sheets("Paramètres").Cells(3, Numcritere + 1)
    Sheets("Combinatoire").Cells(1, Numcritere) = Nomcritere
     
        For cycl = 1 To (Total / (saut * Nb)) Step 1
            For cas = 1 To Nb
            valeur = Sheets("Paramètres").Cells(cas + 4, Numcritere + 1)
                For repet = 1 To saut
                Sheets("Combinatoire").Cells((Nb * saut) * (cycl - 1) + saut * (cas - 1) + repet + 1, Numcritere) = valeur
                Next
            Next
        Next
     
    saut = saut * Nb
     
    Next
     
    End Sub

  2. #2
    Expert éminent
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    4 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 4 604
    Points : 8 020
    Points
    8 020

    Par défaut

    Bonour

    J'ai l'habitude de répondre en invitant à faire de petits tests --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Columns("D").Insert
    derlig = Range("B" & Rows.Count).End(xlUp).Row
    Range("D1:D" & derlig).Value = Range("B1:B" & derlig).Value
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro). Ne m'en proposez donc pas.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    décembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 19
    Points : 8
    Points
    8

    Par défaut

    Merci pour votre retour.


    Cependant, je ne vois pas trop où mettre cette partie du code ...

  4. #4
    Rédacteur

    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    7 589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 7 589
    Points : 17 758
    Points
    17 758
    Billets dans le blog
    6

    Par défaut

    Bonjour,
    je ne vois pas trop où mettre cette partie du code ...
    Si tu avais utilisé l'enregistreur de macros, le meilleur ami du développeur quand il ne sait pas quelle méthode ou quelle propriété utiliser pour un objet, tu ne poserais pas cette question.
    Car tu aurais pu constater que le code se place à l'intérieur d'une procédure (Sub) qui elle même se trouve dans un module.

    A lire de toute urgence Support de cours complet pour le VBA d'Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    décembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 19
    Points : 8
    Points
    8

    Par défaut

    Oui, je savais qu'il fallait le mettre à l'intérieur de la procédure Sub().
    Je voulais dire par rapport à mon code que j'ai mis je ne savais pas où placer le test que vous m'avez transmis.

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2013
    Messages
    8 662
    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 : 8 662
    Points : 17 203
    Points
    17 203

    Par défaut

    Bonjour,

    du coup ta question en appelle une autre :   est-ce vraiment ton code ?‼

    Un code n'étant qu'une suite logique d'actions …

    ___________________________________________________________________________________________________________
    Je suis Paris, New-York, Mogadicio, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    . . . . . Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    décembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 19
    Points : 8
    Points
    8

    Par défaut

    Pas du tout je viens de le recevoir dans le cadre d'un projet et je dois faire des modifications sur ce code là.

    Je sais ce qu'il génère mais étant donné que je viens de découvrir le VBA je ne vois pas du tout comment intégrée une nouvelle colonne et faire les modifications souhaitées.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    décembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 19
    Points : 8
    Points
    8

    Par défaut

    J'ai utilisé un autre moyen pour ajouter une colonne.

    Du coup, j'ai décalé mon tableau qui a été généré par la macro d'une colonne vers la droite et maintenant je souhaiterais juste remplir les cellules avec le numéro de ligne correspondante.

    j'ai tenté un début de boucle For mais sans réel succès ...

    Savez vous quels modifications dois je faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Columns("A:A").Insert Shift:=xlToRight
     
    For x = 1 To Total
        Cells(x, A).Select = "x"
        x = x + 1
     Next

  9. #9
    Expert éminent
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    4 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 4 604
    Points : 8 020
    Points
    8 020

    Par défaut

    J'ai utilisé un autre moyen pour ajouter une colonne.
    il est fondamentalement identique à celui qui t'a été donné ...
    j'ai tenté un début de boucle For mais sans réel succès ...

    Savez vous quels modifications dois je faire ?
    Pour écrire en colonne A les N°s de lignes ? --->> C'est une plaisanterie ?
    Une simple formule Excel
    tirée vers le bas !

    PS : je préfère passer sous silence la confusion que tu fais entre une chaîne de caractère et une variable.
    Tu as TRES TRES TRES surement besoin de commencer l'étude des rudiments de chez rudiment.
    Reviens ensuite au moins "armé" de cela, s'il te plait.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro). Ne m'en proposez donc pas.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    décembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2011
    Messages : 19
    Points : 8
    Points
    8

    Par défaut

    Une manière de le faire en VBA serait mieux mais le décalage n'est pas le moyen le plus approprié pour le code.

    Je voudrais essayer un autre moyen.

    Auriez vous une idée pour commencer mon tableau à la colonne B au lieu de la colonne A ?

    Par après je vais insérer les numéros de lignes.

Discussions similaires

  1. Insérer une colonne dans un DataGridView
    Par dlefebvre dans le forum VB.NET
    Réponses: 5
    Dernier message: 14/07/2008, 22h46
  2. Formulaire : insérer une colonne ?
    Par RobertBidochon666 dans le forum IHM
    Réponses: 17
    Dernier message: 02/04/2008, 23h07
  3. insérer une colonne d'un gridview ds la bd
    Par foryou dans le forum ASP.NET
    Réponses: 8
    Dernier message: 08/02/2008, 11h12
  4. insérer une colonne dans une base
    Par ludolan dans le forum Access
    Réponses: 2
    Dernier message: 21/10/2005, 12h29
  5. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 12h44

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