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ème de selection de cellule [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    ouvrier
    Inscrit en
    Août 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 18
    Par défaut Problème de selection de cellule
    Bonjour à tous,
    Je voudrais dans une macro sélectionner des cellules contiguës selon une ligne et une colonne paramétrées.
    j'ai écrit ceci mais ça ne fonctionne pas (erreur d'éxécution 1004 sur cette ligne):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Range(Cells(Ligne, Colonne), Cells(Ligne + 1, Colonne - 11)).Select
    J'ai beau chercher dans tous les sens et sur Internet, mais je ne trouve pas de réponse qui résolve mon problème

    Les variables sont déclarées comme ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Colonne As Integer
    Dim Ligne As Integer
    Voici le début 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    Sub Test()
     
    Dim Colonne As Integer
    Dim NumSemaine As Integer
    Dim Ligne As Integer
    Dim Onglet As String
     
    Application.ScreenUpdating = False
     
    NumSemaine = ActiveSheet.Cells(16, 2).Value
    If ActiveSheet.Cells(16, 3) = "AA" Then Ligne = 6
    If ActiveSheet.Cells(16, 3) = "BB" Then Ligne = 20
    If ActiveSheet.Cells(16, 3) = "CC" Then Ligne = 34
    If ActiveSheet.Cells(16, 3) = "DD" Then Ligne = 48
    If ActiveSheet.Cells(16, 3) = "EE" Then Ligne = 62
    If ActiveSheet.Cells(16, 3) = "FF" Then Ligne = 76
     
    If ActiveSheet.Cells(16, 3) = "AA" Then Onglet = "PA_AA"
    If ActiveSheet.Cells(16, 3) = "BB" Then Onglet = "PA_BB"
    If ActiveSheet.Cells(16, 3) = "CC" Then Onglet = "PA_CC"
    If ActiveSheet.Cells(16, 3) = "DD" Then Onglet = "PA_DD"
    If ActiveSheet.Cells(16, 3) = "EE" Then Onglet = "PA_EE"
    If ActiveSheet.Cells(16, 3) = "FF" Then Onglet = "FF"
     
    'Efface les données d'Archive si la synthèse de la semaine 12 est lancée
     
     If NumSemaine = 12 Then
     Sheets("Archive").Activate
     Sheets("Archive").Range("D6:N100").ClearContents
     
     End If
     
    'Cherche les données de la semaine sélectionnée dans l'onglet ZZ
     
    For Colonne = 4 To 68
     
        If Sheets("ZZ").Cells(6, Colonne) = NumSemaine Then
     
           ' Copie/colle les données Pertes (%)
     
         Sheets("ZZ").Select
         Range(Cells(Ligne, Colonne), Cells(Ligne + 1, Colonne - 11)).Select
        Application.CutCopyMode = False
        Selection.Copy
     
        Sheets("XX").Select
        Range("I46").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
     
    .................
    End Sub
    Bon, déjà, on peut facilement optimiser le code...mais je le ferai par la suite.
    Si quelqu'un pouvait me donner une piste à mon erreur.

    Merci de votre aide

    Amicalement,

    Luka

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour !

    Un numéro de colonne - comme de ligne - ne peut être inférieur à 1 !

    Donc si la colonne est entre un et onze : Colonne - 11 déclenche de facto une erreur, CQFD !
    Erreur de conception vis à vis de la ligne n°36 du code …

    Sinon il est plus simple de combiner la cellule de départ (coin supérieur gauche de la plage de cellules)
    avec la propriété Resize (cf aide VBA intégrée) …

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Membre averti
    Homme Profil pro
    ouvrier
    Inscrit en
    Août 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 18
    Par défaut
    Bonjour Marc L,

    C'est tellement gros que je ne l'ai pas vu. Boucle ligne 36 modifiée et essai --> Plus de problème, cela fonctionne.

    Un grand merci à toi.

    Amicalement,
    Luka

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    En tenant compte des remarques de Marc, y compris pour la propriété "Resize", j'ajouterai que tous tes "Select" sont inutiles, j'écrirai (bien sur si le problème des colonnes ou lignes est résolu), pour l'exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For Colonne = 4 To 68
     
        If Sheets("ZZ").Cells(6, Colonne) = NumSemaine Then
        Sheets("XX").Range("I46") = Sheets("ZZ").Range(Cells(Ligne, Colonne), Cells(Ligne + 1, Colonne - 11))
     
    .................
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sheets("ZZ").Select
         Range(Cells(Ligne, Colonne), Cells(Ligne + 1, Colonne - 11)).Select
        Application.CutCopyMode = False
        Selection.Copy
     
        Sheets("XX").Select
        Range("I46").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
    C'était juste une remarque supplémentaire
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre averti
    Homme Profil pro
    ouvrier
    Inscrit en
    Août 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 18
    Par défaut
    Bonjour casefayere,
    Cela ne fait pas longtemps que je fricote avec le vba, je me sers souvent de l’interpréteur de macro quand je ne connais pas trop les instructions, puis j'optimise une fois que tout fonctionne..

    Merci pour cette amélioration, je vais m'en servir (et pour plusieurs autres projets).

    Bonne journée
    Amicalement,
    Luka

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Content que ça fonctionne mais tiens compte de mes remarques (enfin, tu feras comme tu veux..)

    Bonne continuation
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2014, 08h14
  2. [XL-2007] Problème avec Selection cellule dernière colonne
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/04/2013, 12h17
  3. [XL-2010] Problème selection de cellule
    Par Tobar4 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2012, 14h18
  4. [Toutes versions] Problème avec selection cellule grâce au formulaire
    Par jerem1 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/09/2011, 18h17
  5. [XL-2000] Problème selection de cellule
    Par jerem1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2010, 19h42

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