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 sur boucle [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 97
    Par défaut Probl sur boucle
    Bonjour

    voila j'ai un gros soucis sur mon code

    je voudrais a travers ce code que lorsque je clique sur une cellule de la colonne D (de la ligne 1 a 158) cette macro selectionne les données correspondantes de la colonne A à M et ensuite
    que chaque cellule (ex a1, b1, c1 .... m1) soit renomée ....

    mon programe beug terriblement
    alala les débuts ds vba


    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
     
     
    Sub selectdata()
     
    Dim i As Integer
    Dim j As Integer
     
    Dim seltrade As Variant
     
    For Each seltrade In Worksheets("2401").Range("D27:D158")
     
    For i = 1 To 158
        If Selection = Range("D,i") Then
        Range(ActiveCell, ActiveCell.Offset(0, -3)).Select
        Range(ActiveCell, ActiveCell.Offset(0, 12)).Select
        End If
     
    Next i
     
    For j = 1 To 13
     
     
    ActiveWorkbook.Names.Add Name:="CLI1", RefersToR1C1:="=Feuil2401!R(i)C(J)"
    ActiveWorkbook.Names.Add Name:="REC1", RefersToR1C1:="=Feuil2401!R(i)C(J+1)"
    ActiveWorkbook.Names.Add Name:="PAY1", RefersToR1C1:="=Feuil2401!R(i)C(J+2)"
    ActiveWorkbook.Names.Add Name:="DEALSL1", RefersToR1C1:="=Feuil2401!R(i)C(J+3)"
    ActiveWorkbook.Names.Add Name:="SF1", RefersToR1C1:="=Feuil2401!R(i)C(J+4)"
    ActiveWorkbook.Names.Add Name:="VALD1", RefersToR1C1:="=Feuil2401!R(i)C(J+5)"
    ActiveWorkbook.Names.Add Name:="AMCCY111", RefersToR1C1:="=Feuil2401!R(i)C(J+6)"
    ActiveWorkbook.Names.Add Name:="AMCCY221", RefersToR1C1:="=Feuil2401!R(i)C(J+7)"
    ActiveWorkbook.Names.Add Name:="CCYON1", RefersToR1C1:="=Feuil2401!R(i)C(J+8)"
    ActiveWorkbook.Names.Add Name:="CCYTT1", RefersToR1C1:="=Feuil2401!R(i)C(J+9)"
    ActiveWorkbook.Names.Add Name:="RATES1", RefersToR1C1:="=Feuil2401!R(i)C(J+10)"
     
     
    Next j
     
    Next
    End Sub
    merci de votre compréhension

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonsoir Alexandrek,

    Ouh là là !

    Aucun problème, on va reprendre de bout en bout, ce soir et demain.

    1 - Sache tout d'abord qu'en VBA, pour exercer une action, tu n'as pas besoin de sélectionner ton objet (Range)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A1").Select
    Selection.Value = 1
    doit être remplacé par

    Le code s'en trouve plus clair et plus performant.

    2 - Dans ton code, si tu boucles avec une occurence i, celle-ci ne doit pas être incluse dans une chaîne de caractères (entre guillemets)

    ne veut rien dire car l'occurence "i" est alors considérée "en dur"

    Il faut remplacer par

    3 - Si j'ai bien compris, tu veux avoir autant de noms que de cellules de nombre = lignes * colonnes.

    Joins un fichier simplifié en précisabnt quelles cellules tu veux nommer.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 97
    Par défaut
    voila le fichier je veux renomer en faite si i = 8 en cliquant sur d8

    toutes les cellules a8 jusqu'a M8

    toutes les cellules a traves cette boucle que je veux modifier sont en rouge

    tres tres dur les debuts en vba

    merci bcp en tout cas de votre aide
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut création de noms
    Alexandrek,

    J'ai adapté un code.

    Pour cela, il te faut placer les racines "CLI" etc en entêtes de colonnes, donc en ligne, à partir de E26 puisque tu balaies à partir de la ligne 27.

    Donc quelquechose comme

    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 CréatNoms()
     
    Dim débnoms as range
    Dim listnoms as range
     
    Set débnoms = Sheets("2401").Range("E26")
     
    Set listnoms = Range(débnoms, débnoms.End(xlToRight))
     
    For Each nom In listnoms
        For i = 1 To 132
            ActiveWorkbook.Names.Add Name:=nom.Value &"_" & i, RefersToR1C1:=nom.Offset(i, 0)
        Next
    Next
     
    End Sub
    Tes noms seront cr"és du type CLI_1, REC_1 ... en ligne 27, CLI_2, REC_2... en ligne 28 etc...

    Tu obtiendrais ainsi 11 * 132 noms, ce qui est énorme.

    Précise bien si cela correspond à ta recherche.

    A demain.

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut créations de noms
    Alexandrek,

    Nos posts se sont croisés.

    Je ne crois pas qu'il existe un évènement click, mais plutôt doubleclick.

    En tout cas, ton développement est intéressant.

    On en reparle demain. Promis.

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 97
    Par défaut
    IL ME MARQUE LA variable nom n est pas définie ?

  7. #7
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    http://www.developpez.net/forums/d10...ucle-for-next/
    Évite d'ouvrir plusieurs postes sur le même sujet.
    Des modifications de ton code t'ont été proposées, et tu n'en tiens pas compte dans le "nouveau" code que tu nous proposes, pourtant elle me paraissent très a propos.

    Il serait bien de nous expliquer globalement (globalement, mais clairement quand même hein ) ce que tu souhaites faire, il serait alors plus facile pour les gens présents sur le forum de te conseiller dans la structure de ton code.


    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  8. #8
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut déclaration
    Bonsoir Qwaz,
    Alexander,

    Ajoute après les 2 premières déclarations

    (tu dois être en Options Explicit, toutes tes variables doivent être déclarées,
    Personnellement, je trouve que les codes y gagnent en clarté)

    Pour le reste, je rejoins Qwaz. Précise bien où tu veux en venir.

    A demain.

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

Discussions similaires

  1. probleme de novice sur boucle vba
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/06/2007, 21h08
  2. [MySQL] Problème sur Boucle While après un LEFT JOIN
    Par matperino dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 28/05/2007, 17h43
  3. [VBA-E]Problème de triet effacement de doublon sur boucle
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/09/2006, 11h06
  4. Réponses: 3
    Dernier message: 11/06/2006, 12h09
  5. [BATCH] Aide sur boucle for et test
    Par t_om84 dans le forum Windows
    Réponses: 3
    Dernier message: 07/06/2006, 10h12

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