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 :

aide avec les nom definie sous vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    electricien
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut aide avec les nom definie sous vba
    Bonjour a tous

    je demande de l'aide car je n'arrive pas a me débrouiller tous seul malgré mes differente recherche

    je vous explique mon petit soucis qui doit être tout bête mais je trouve pas.

    voila j'ai une macro qui fonctionne il s'agit d'une boucle qui colle la valeur de la colonne 5 dans la colonne 6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
     
    Dim x As Integer
    For x = 6 To 10
        Cells(x, 6).Value = Cells(x, 5).Value
    Next
     
    End Sub
    maintenant j'aimerais pouvoir faire en sorte que cette macro fonctionne toujours si j'insert une colonne entre les deux ,qui colle la valeur de la colonne 5 dans la colonne 7 donc je me suis dit que j'avais juste a définir des noms pour mes colonnes et mettre ces nom a la place des numéro de lignes mais vba me dit des mot méchant

    merci d'avance de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Nomme tes plages de données (Insertion>Nom>Définir... jusqu'à 2003 si je me souvient bien ? Ou Formules>Définir un nom) et teste le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub test()
     
        Dim Cel As Range
     
        'parcour la plage nommée (ici "NomDeColonne_5")
        'et inscrit les valeurs dans la même ligne de la
        'plage nommée "NomDeColonne_6"
        For Each Cel In Range("NomDeColonne_5")
            Range("NomDeColonne_6")(Cel.Row) = Cel.Value
        Next Cel
     
    End Sub
    Hervé.

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Si les colonnes comportent un grand nombre de lignes, traiter par une boucle prend beaucoup de temps.

    Il me semble plus rapide de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thisworkbook.Names("nmColB").referstorange.Value = Thiswokbook.Names("nmColA").RefersToRange.Value
    nmColA et nmColB peuvent désigner tout ou parties de colonnes.

    Cordialement,

    PGZ

  4. #4
    Membre habitué
    Homme Profil pro
    electricien
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Bonjour et merci pour ta réponse

    c'est quasiment ça mais le souci avec le cel.row mais je vais chercher de moi même et je reviendrais si j'ai besoin d'aide car pour le moment ma colonne commence a la ligne 6 ce qui est normal mais le résultat est a la ligne 11

    je suis sur la voie et un peu de recherche me fera du bien merci beaucoup

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Si tu nommes la plage E6:E100 : nmColA; et la plage F11:F105 : nmColB, la ligne de code que je t'ai proposée devrait fonctionner.

    Cordialement,

    PGZ

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Le décalage de ligne est dû au décalage de plage, rajoute ou retranche le décalage à "Cel.Row".
    Le code de pgz me semble être la meilleure solution mais dans les deux cas, les plages doivent avoir le même nombre de lignes.

    Hervé.

Discussions similaires

  1. [XL-2010] Nom de champs defini sous VBA
    Par nibledispo dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/08/2013, 20h26
  2. Réponses: 2
    Dernier message: 06/05/2010, 14h56
  3. Réponses: 0
    Dernier message: 11/03/2010, 10h13
  4. Réponses: 7
    Dernier message: 04/11/2004, 12h20
  5. Réponses: 2
    Dernier message: 29/08/2003, 17h52

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