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 :

Selection de la ligne d'une cellule cible


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut Selection de la ligne d'une cellule cible
    Bonjour à tous !

    J'aurais d'un petit coup de main, et je vous en remercie par avance !
    Voilà mon problème :

    Je voudrais copier dans les 3 cellules suivant "cible", la valeur de cible. Ensuite, j'aimerais que la cible gagne 5 lignes.

    Voici mon code :
    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
    Sub Macro2()
     
        cible = Cells(19, 1)
     
        Cells(Range("cible").Row + 1, 1).Select
        ActiveCell.FormulaR1C1 = "=R[-1]C"
        Cells(Range("cible").Row + 2, 1).Select
        ActiveCell.FormulaR1C1 = "=R[-2]C"
        Cells(Range("cible").Row + 3, 1).Select
        ActiveCell.FormulaR1C1 = "=R[-3]C"
        Cells(Range("cible").Row + 4, 1).Select
     
        cible = cible + 5
     
     
    End Sub
    Il y a surement un problème de syntaxe dans la sélection de la ligne de "cible" mais je ne vois pas où ...

    Merci encore !!

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,

    tu n'as pas déclaré cible. Est-ce une valeur numérique ? Est-ce une cellule ou plage de cellules ? Est-ce une chaîne de caractères ?

    Toujours faire des déclarations de variables pour la lisibilité du code

    Sans cette info, on va te proposer moultes idées qui ne correspondront pas nécessairement à ton cas de figure, donc ca fait gagner du temps à tout le monde

    Pour déplacer entre les cellules, voir la fonction .Offset(). La syntaxe est donné dans l'aide en ligne
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut
    Merci pour ta réponse !
    En fait, cible représente une cellule cible. En regardant les variables disponibles, je ne vois que des variables numériques, texte, date ... Du coup, je dois utiliser variant ?

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    voir ici ?

    http://silkyroad.developpez.com/VBA/LesVariables/#LII-K


    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut
    Hum, je ne vois toujours pas où déclarer une cellule ...
    En fait, dois-je déclarer la cellule elle-même ou bien la valeur qu'il y aura dans la cellule ?
    Mais en compilant, le message d'erreur qui s'affiche ne vient pas de là. "Range de l'objet global a échoué"

    Merci pour les explications sur le fonctionnement du forum.

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Tu peux commencer avec ce code
    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
    Option Explicit
    Sub Macro2()
    Dim Ws As Worksheet
    Dim Cible As Range
        Set Ws = ThisWorkbook.Worksheets("Feuil1") 'Nom de feuille à adapter
        'La cellule A19 est désignée comme cible
        Set Cible = Ws.Cells(19, 1)
        'On affecte une formule aux 3 cellules qui suivent la cible
        Cible.Offset(1, 0).FormulaR1C1 = "=R[-1]C"
        Cible.Offset(2, 0).FormulaR1C1 = "=R[-2]C"
        Cible.Offset(3, 0).FormulaR1C1 = "=R[-3]C"
        'On désigne la nouvelle cellule cible (décalage de 5 lignes)
        Set Cible = Cible.Offset(5, 0)
        'On active la feuille Ws
        Ws.Activate
        'On sélectionne la nouvelle cible
        Cible.Select
        Set Cible = Nothing
        Set Ws = Nothing
    End Sub
    Cordialement.

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

Discussions similaires

  1. [CSS] Empecher le retour à la ligne dans une cellule
    Par pekka77 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 26/02/2009, 16h50
  2. [Affichage] Saut de ligne dans une cellule de tableau
    Par pc.bertineau dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/02/2007, 09h54
  3. copier une ligne d'une cellule et la coller
    Par sam01 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/07/2006, 14h34
  4. [XSLT][>CSV]retour a la ligne dans une cellule d'un fichier csv
    Par ujoodha dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 09/07/2006, 12h08
  5. Texte sur plusieurs lignes dans une cellule de JTable
    Par JeanECN dans le forum Composants
    Réponses: 3
    Dernier message: 10/04/2006, 17h20

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