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 :

Agrandir une plage avec ActiveCell


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 22
    Par défaut Agrandir une plage avec ActiveCell
    Bonjour,

    Un partie de mon code doit se placer sur la cellule trouvée pour ensuite la transformer en plage afin de venir y exécuter des actions cellule par cellule.
    Le problème est que le code m'affiche une erreur : '1004' erreur définie par l'application ou par l'objet.

    voici la totalité du 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
    If Worksheets(Sh).Cells(ligne, 3).Value = 2 Then
    Worksheets(Sh).Cells(ligne, 3).Activate
        ActiveCell.Offset(5, 3).Select      '1ere DESTINATION
        Set Myrange = Range(ActiveCell, ActiveCell.Offset(0, 10)).Select
            For Each cel In Myrange.Cells
                If cel = 0 Or cel = "" Then Exit For
                MAG = ActiveCell.Offset(0, -1).Value
                    Do
                    a = 2
                        If Worksheets("VERIF + PLANNING").Cells(a, 1).Value = MAG Then
                            Worksheets("VERIF + PLANNING").Cells(a, 2) = "X"
                    Exit Do
                        Else
                        a = a + 1
                        End If
                    Loop
            Next

  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 681
    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 681
    Par défaut
    SAlut
    ActiveCell ca existe, mais si tu peux t'en passer, fais le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets(Sh).Cells(ligne, 3).Activate
        ActiveCell.Offset(5, 3).Select
    devient alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(Sh).Cells(ligne, 3).Offset(5, 3).Select
    et meme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(Sh).Cells(ligne+5, 6).Select
    ce qui signifie ensuite que ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Myrange = Range(ActiveCell, ActiveCell.Offset(0, 10)).Select
    en plus d'etre maladroit, doit devenir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Myrange = Worksheets(Sh).Range(Worksheets(Sh).Cells(ligne+5, 6), Worksheets(Sh).Cells(ligne+5, 16))
    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
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 22
    Par défaut
    Je te remercie, le code maintenant marche du tonnerre sur cette partie!

    J'ai également un second soucis concernant l'utilisation de FOR EACH et NEXT.
    Apres plusieurs erreurs "Each sans For" je me suis résolue à ajouter un Exit For sur la ligne du IF.
    Cela n'était pas une bonne idée car une fois qu'une cellule remplie la condition il ne vérifiera pas les prochaines car il quitte FOR EACH sans repasser par NEXT.

    Auriez-vous une idée de comment procéder?

  4. #4
    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 681
    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 681
    Par défaut
    TU peux remplacer ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If cel = 0 Or cel = "" Then Exit For
    Par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Not (cel = 0 Or cel = "") Then 
    'suite du code
    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

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 22
    Par défaut
    En faisant ceci :

    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
    If Worksheets(Sh).Cells(ligne, 3).Value = 2 Then      '1ere DESTINATION
        Worksheets(Sh).Cells(ligne, 3).Offset(5, 3).Select
        Set Myrange = Worksheets(Sh).Range(Worksheets(Sh).Cells(ligne + 5, 6), Worksheets(Sh).Cells(ligne + 5, 16))
            For Each cel In Myrange.Cells
                If Not (cel = 0 Or cel = "") Then
                MAG = ActiveCell.Offset(0, -2).Value
                    a = 2
                    Do
                        If Worksheets("VERIF + PLANNING").Cells(a, 1).Value = MAG Then
                            Worksheets("VERIF + PLANNING").Cells(a, 2) = "X"
                    Exit Do
                        Else
                        a = a + 1
                        End If
                    Loop
            Next
    J'ai toujours ce message d'erreur me disant "Next sans For". Est ce que ce ne serait pas le NEXT qui est mal placé par hasard? J'ai essayé quelques changements de place sans résultat...

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 970
    Par défaut
    bonjour
    si tu supprime qu'est ce que ça donne ??

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

Discussions similaires

  1. Agrandir une plage lors d'un ajout de ligne
    Par bboule10 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/10/2009, 12h18
  2. [XL-2003] Calcul de moyenne dans une plage avec condition
    Par flo21000 dans le forum Excel
    Réponses: 7
    Dernier message: 24/07/2009, 19h31
  3. Excel, agrandir une plage de cellules sur la droite.
    Par Ldoppea dans le forum C++Builder
    Réponses: 9
    Dernier message: 12/11/2008, 17h52
  4. Selection d'une plage avec ligne variable
    Par ginkas31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/01/2008, 07h04
  5. [VBA-E]Agrandir une plage de données d'un graphique
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/05/2007, 11h43

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