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 :

Problématique à création d'une variable ligne et colonne dans un range [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Pharmacien
    Inscrit en
    Avril 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Pharmacien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2019
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Problématique à création d'une variable ligne et colonne dans un range
    Bonjour à toutes et à tous,

    Après avoir parcouru ce forum pour chaque morceau de code que j'ai réalisé, je tiens à vous remercier grandement pour la richesse de son contenu !

    Je rencontre un problème dans l'élaboration d'une procédure, et pour une fois, je n'arrive pas à le contourner.

    En essayant d'être clair :
    - Sous Office 365 (excel 2016)
    - Je souhaite copier des cellules d'une feuille 1 à une feuille 2 (même classeur) en fonction de la valeur d'une cellule sur la même ligne (type index equiv en formule)
    - Je suis en Option Explicit et en Option Compare Text

    Pour cela, j'ai réalisé une double boucle

    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
     
    Dim dernligne As Long, i As Long, j1 As Long, j2 As Long, dernligne1 As Long, dernligne2 As Long, derncolonne As Long, d 
     
    dernligne1 = Worksheets("FiltreBis").Range("C" & Rows.Count).End(xlUp).Row
    derncolonne = Sheets("Indicateurs").Range("W2").End(xlToLeft).Column + 1
     
    For j1 = 2 To dernligne1
    For j2 = 2 To 26
     
    If Worksheets("FiltreBis").Range("C" & j1).Value = "" Then GoTo FillBlank
    If Worksheets("FiltreBis").Range("C" & j1) = Worksheets("Indicateurs").Range("I" & j2) Then
    Worksheets("Indicateurs").Range(derncolonne & j2) = Worksheets("FiltreBis").Range("E" & j1)
    End If
    Next
    Next
    Le problème apparaît sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Worksheets("Indicateurs").Range(derncolonne & j2) = Worksheets("FiltreBis").Range("E" & j1)
    Et plus particulièrement sur la variable : derncolonne.

    En effet :
    - en remplaçant la variable par la lettre de la colonne ("M" en l’occurrence), la procédure tourne sans coup férir,
    - en remplaçant la variable par son résultat (13), la procédure s'arrête sur une "erreur définie par l'application ou par l'objet" (1004),
    - en tentant de contourner le problème via Select Case, afin de transformer les chiffre en lettre (why not ?...) , retour à l'erreur 1004 (code ci-après au cas où il serait gangrèné).

    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
     
    Select Case (derncolonne)
    Case derncolonne = 11
    d = "K"
    Case derncolonne = 12
    d = "L"
    Case derncolonne = 13
    d = "M"
    Case derncolonne = 14
    d = "N"
    Case derncolonne = 15
    d = "O"
    Case derncolonne = 16
    d = "P"
    Case derncolonne = 17
    d = "Q"
    Case derncolonne = 18
    d = "R"
    Case derncolonne = 19
    d = "S"
    Case derncolonne = 20
    d = "T"
    Case derncolonne = 21
    d = "U"
    Case derncolonne = 22
    d = "V"
    End Select
    Est-ce la variable derncolonne qui est mal dimensionnée, mal formulée. Ou est-ce mon Range qui est mal assorti aux valeurs que je veux lui donné (colonne vide, ligne en cours)
    Ainsi, je viens quémander une aide et surtout des conseils

    Dans l'espoir d'avoir réussi à placer correctement les balises, je vous souhaite une bonne soirée !

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Lorsque tu emploies .Range(derncolonne & j2) derncolonne doit être une variable String qui correspond aux lettres désignant la colonne (Exemple "W" & 2 = "W2"
    Remplaces par .Cells(j2, derncolonne)
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Pharmacien
    Inscrit en
    Avril 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Pharmacien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2019
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Tout fonctionne !
    Merci beaucoup pour le coup de main

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

Discussions similaires

  1. GWT, Création d'une ''Grid'' de 200 colonnes et de 500 lignes.
    Par nataku29 dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 23/12/2014, 10h33
  2. Réponses: 5
    Dernier message: 27/06/2006, 20h27
  3. Réponses: 9
    Dernier message: 19/12/2005, 14h24
  4. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 10h28
  5. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31

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