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 :

For-next loop anidé, conditionné avec if


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Chimie
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chimie
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Par défaut For-next loop anidé, conditionné avec if
    Bonjour,

    Je débute avec excel vba et j'ai besoin de beaucoup d'aide svp.

    J'ai initialement un livre de 3 feuilles. Mais qui va grandir au four et à mesure.

    feuil1 = "Listes" : contienne 106 arrays 2D avec row(27) avec des codes à 3 lettres comme entêtes et range("a1:db47") pour les arrays, nommés par colonnes
    feuil2 = "MENU" : l'endroit où je détermine le code à chercher
    feuil3 = "1" : feuille où je dois imprimer mes arrays

    feuil4 = "2"
    feuil5 = "3"...

    Avec un code à 3 lettres trouvé en "MENU" je dois balayer les entêtes de la feuille "Listes" row(27) afin d'imprimer sur la feuille respective "1" ou "2" ou "3"... etc... l'array qui corresponde.

    J'ai essayé ça :

    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
    Sub prueba()
     
    Dim i As Integer
    Dim example, example2 As Range
    Dim cel As Variant
    Dim cherche As String
     
    Set example = Sheets("Listes").Rows(27)
    Set example2 = Sheets("Listes").Range("b28:db47")
     
    cel = Left(ActiveCell, 3)
    cherche = ActiveCell.Offset(0, -2).Value
     
    For i = 2 To 106
    If example.Columns(i) = cel Then
    Sheets(cherche).Range("d6:d25").Value = example2.Columns(i).Value
    End If
    Next
     
    End Sub
    Qu'est-ce qui ne va pas, svp?
    Merci.
    Rose

  2. #2
    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
    C'est quoi, "anidé" ? une francisation de "anidado" ?

    Je n'ai par ailleurs personnellement pas vraiment tout compris de ton exposé.

  3. #3
    Membre régulier
    Femme Profil pro
    Chimie
    Inscrit en
    Juin 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chimie
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2018
    Messages : 7
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour
    C'est quoi, "anidé" ? une francisation de "anidado" ?

    Je n'ai par ailleurs personnellement pas vraiment tout compris de ton exposé.
    Oh, je m'excuse pour le mauvais français.
    J'ai voulu dire un cycle for à l'intérieur d'un autre. Oui, en espagnol c'est «anidado»
    Merci.

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,

    Merci d'utiliser la balise code (bouton #) c'est beaucoup plus lisible

    Citation Envoyé par RosseAcevedo Voir le message
    Qu'est-ce qui ne va pas, svp?
    Normalement c'est plutôt à toi de nous le dire:
    Tu as un message d'erreur ? si oui lequel sur quel ligne ?
    Si non tu obtiens un résultat ? lequel ? en quoi est il différent de ce que tu attendais ?

    Pourrais-tu illustrer par exemple ce que tu cherches a faire (éventuellement avec des captures d'écran), j'ai un peu de mal à suivre ton explication.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cel = Left(ActiveCell, 3)
     cherche = ActiveCell.Offset(0, -2).Value
    Es-tu sûr qu'utiliser la cellule active soit une bonne idée ? Es-tu sur qu'au moment de l'exécution ces variables ont bien les valeurs que tu attends ? (fait les afficher ou lance ta macro en pas à pas (F8) pour vérifier)

Discussions similaires

  1. [Ex-03] Boucle For Next et Do Loop imbriquées
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/10/2008, 18h08
  2. Réponses: 2
    Dernier message: 28/08/2008, 16h36
  3. [VB.net] Boucle for next avec un tableau
    Par grand_prophete dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/05/2006, 11h08
  4. Réponses: 3
    Dernier message: 03/11/2005, 19h22
  5. qbasic : pause avec FOR-NEXT
    Par clood200 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 08/08/2003, 16h51

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