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 :

Incrementation d'une colonne spécifique


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Incrementation d'une colonne spécifique
    Bonjour a tous,

    Apres avoir longuement parcouru le site et le forum je me suis dis autant participé et m'inscrire sur le forum pour y contribué. En tout cas bravo aux participants. Or j'ai une question qui me trote depuis un petit moment et j'ai pas trouvé la réponse a ce sujet sur le forum (ou du moins une réponse que j'attendais meme si le sujet a été abordé sur le forum).

    Par exemple ici : http://www.developpez.net/forums/sho...d.php?t=370836

    Voila ma question :

    Comment incrementer une colonne type ("C4:C34") en ("D4:D34") ?
    Il n'y a finalement que la collone qui change mais je n' y arrive pas...

    Voila si vous avez des idées sur le sujets...

    Merci a vous en tout cas...

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour et bienvenue

    Comme le précisait Alain Tech dans la discussion à laquelle tu fais référence, il est plus facile d'utiliser les index de lignes et de colonnes, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C4:C34") = Range(Cells(4, 3), Cells(34, 3))
    Cells(x, y) --> x = n° de ligne et y = n° de colonne

    A partir de là plusieurs possibilités
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(4, 3 + 1), Cells(34, 3 + 1))
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(4, 3).Offset(0, 1), Cells(34, 3).Offset(0, 1))
    ou une boucle qui parcoure les colonnes C, D, E, F et G
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 3 To 7
    Range(Cells(4, i), Cells(34, i))
    Next
    etc...

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Juste pour taquiner le lecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Ad1 = "C4:C34"
    Ad2 = Range(Range(Split(Ad1, ":")(0)).Offset(0, 1).Address & ":" _
    & Range(Split(Ad1, ":")(1)).Offset(0, 1).Address).Address(0, 0)
    MsgBox Ad2
    (Bonjour fring)

    Edit
    On peut "simplifier"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Ad2 = Range(Range(Split(Ad1, ":")(0)).Offset(0, 1).Address & ":" _
    & Range(Split(Ad1, ":")(1)).Offset(0, 1).Address).Address
    mais on aura l'adresse en absolu

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Merci de vos réponses rapide.

    JE vais tester ça et vous en dire des nouvelles...


  5. #5
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Heu juste un truc j'ai une variable, un entier leMois tel que

    Range(Cells(4, 3 + (leMois - 1)), Cells(34, 3 + (leMois - 1))

    mais j'ai une erreur 1004

    Je ne comprends pas pourquoi?

    Au lieu d'incrementer je veux que cela se fasse en fonction de la variable.

    Une idée?

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    il manque une parenthèse mais je suppose que c'est une erreur dans le copier/coller de ta ligne de code

    Teste ceci, tu constateras que la variable LeMois est bien prise en compte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Dim LeMois As Integer
    LeMois = 10
    MsgBox Range(Cells(4, 3 + (LeMois - 1)), Cells(34, 3 + (LeMois - 1))).Address
    End Sub

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Non ca ne marche pas non plus.

    Voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Tableau").Range("H10:H40").Copy
        Worksheets("ANNUEL 2008").Range(Cells(4, 3 + (LeMois - 1)), Cells(34, 3 + (LeMois - 1))).PasteSpecial Paste:=xlPasteValues
    Il me semble que c'est le Worksheets("ANNUEL 2008") qui engenedre le probleme...

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par Baloux Voir le message
    Non ca ne marche pas non plus.
    Je me permet une rectification...
    Non je n'arrive pas à le faire fonctionner non plus
    En faisant découvrir ton code et le but que tu cherches à atteindre petit bout par petit bout, tu es certain de ne pas avoir de réponse adéquate...!

    2 Solutions :
    Code copier/collage spécial valeur uniquement : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test1()
    Dim LeMois As Integer
    LeMois = 10
    Sheets(1).Range("H10:H40").Copy
    Sheets(2).Select
    Range(Cells(4, 3 + (LeMois - 1)), Cells(34, 3 + (LeMois - 1))).PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
    End Sub
    Code simple copier/coller : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test2()
    Dim LeMois As Integer
    LeMois = 10
    Sheets(1).Range("H10:H40").Copy Sheets(2).Range(Cells(4, 3 + (LeMois - 1)), Cells(34, 3 + (LeMois - 1)))
    End Sub

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par fring Voir le message
    En faisant découvrir ton code et le but que tu cherches à atteindre petit bout par petit bout, tu es certain de ne pas avoir de réponse adéquate...!
    Bah je le fais au fur et a mesure j'ai l'idée mais pour l'appliquer....
    Perso je n'ai jamais fait de VBA mais j'essaye et j'apprends.

    En tout cas ca marche je te remercie.




  10. #10
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par Baloux Voir le message
    Perso je n'ai jamais fait de VBA mais j'essaye et j'apprends.
    Bonne continuation et n'hésite pas si besoin d'autres explications

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

Discussions similaires

  1. [MySQL-5.1] Jointure avec * sauf sur une colonne spécifique
    Par bronon dans le forum Requêtes
    Réponses: 10
    Dernier message: 09/10/2014, 13h26
  2. Réponses: 4
    Dernier message: 22/07/2014, 17h57
  3. Extraire une colonne spécifique d'un fichier
    Par walos dans le forum Fortran
    Réponses: 5
    Dernier message: 20/09/2012, 16h46
  4. Réponses: 3
    Dernier message: 29/03/2011, 21h38
  5. tri avec l'ordre UPDATE et incrementation d'une colonne
    Par Staron dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/02/2004, 09h48

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