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 :

Range Cells OK sur une colonne mais pas sur une ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut Range Cells OK sur une colonne mais pas sur une ligne
    Bonjour,

    Je souhaite trouver l'indice de la dernière ligne (ok) / colonne (ko) d'un tableau dynamique. Pour se faire j'appelle deux fonctions qui utilisent une troisième volontairement générique :

    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
    MsgBox findLastRow2(1, 1, 1, "") 'OK 
    MsgBox findLastColumn2(1, 1, 10, "") ' KO 
     
     
    Function findLastRow2(counter, start_line, colonne, value_to_stop) 
    findLastRow2 = findLastAbstract(counter, start_line, colonne, MAXLINE, colonne, value_to_stop) 'line 
    End Function 
     
    Function findLastColumn2(counter, line, start_column, value_to_stop) 
    findLastColumn2 = findLastAbstract(counter, line, start_column, line, MAXCOLUMN, value_to_stop) 'column 
    End Function 
     
    Function findLastAbstract(counter, start_line, start_column, max_line, max_column, value_to_stop) 
    'trouve la dernière ligne entre un start et une value dans une colonne (retourne 0 si pas de ligne) 
    Dim plage As Range, cell As Range 
    Set plage = Range(Cells(start_line, start_column), Cells(max_line, max_column)) 
    For Each cell In plage 
    If cell.value = value_to_stop Then 
    Exit For 
    Else: counter = counter + 1 
    End If 
    Next 
    If counter > 1 Then 
    findLastAbstract = counter - 1 
    Else: findLastAbstract = 0 
    End If 
    End Function
    Mais cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(start_line, start_column), Cells(max_line, max_column)
    - plante systématiquement quand je tente de sélectionner une partie de ligne (start_line = max_line) alors que cela fonctionne pour un Range d'une partie de colonne (start_column = max_column)
    - Erreur : "Erreur d'exécution '1004' : Erreur définie par l'application ou par l'objet

    Est-il possible de se passer d'une fonction convertisseur de chiffre en lettre pour se passer de la syntaxe Range("A1:C99") et utiliser Range(Cells(1, 1), Cells(99, 3)) ?
    Merci infiniment !!

  2. #2
    Nouveau candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut Résolu !
    Il n'y a que 255 colonnes sous excel, donc la constante MAXCOLUMN avait une valeur trop grande...

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Le nombre de colonnes dépendant de la version Excel, il n'est pas sage de lui affecter une constante.
    Ce nombre de colonnes est tout simplement Columns.count. Columns.count a toujours la valeur du nombre maximum de colonnes correspondant à la version de Excel utilisée.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/12/2015, 10h19
  2. Insertion ligne vide dans une colonne, mais pas toutes les colonnes.
    Par gsekscor dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2013, 22h33
  3. Bouton facebook présent sur une page mais pas sur une autre
    Par mandragore59va dans le forum Facebook
    Réponses: 1
    Dernier message: 09/11/2011, 03h25
  4. Réponses: 3
    Dernier message: 10/10/2011, 17h13
  5. Réponses: 0
    Dernier message: 03/04/2008, 15h14

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