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

Excel Discussion :

Variable pour lignes et colonnes


Sujet :

Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 45
    Points
    45
    Par défaut Variable pour lignes et colonnes
    Bonjour,

    J'ai besoin dans mon code d'imbriquer deux boucles for. Le problème qui se pose est que je travail sur deux fichiers, et si j'utilise les variables i et j pour le premier fichier, je pourrai pas le faire pour le deuxième, sinon il me généré une erreur.

    Est ce qu'il existe une solutions pour ce problème ?

    Merci.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par info009 Voir le message
    Bonjour,
    Est ce qu'il existe une solutions pour ce problème ?

    Merci.
    Je suppose que oui; mais il y a une pénurie de boules de cristal. Il faudrait que tu fournisses plus d'informations sur le besoin et les problèmes. Et même le code...
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 45
    Points
    45
    Par défaut
    D'accord, c'est un peu compliqué d'expliquer le code puisque ce n'est qu'un bout de code du programme.

    ' wb1 n'est pas le classeur sur lequel le code est executé
    Set wb1 = Workbooks.Open(chemin1)

    ' ws1 est une feuille de wb1
    Set ws1 = Worksheets("Feuil1")

    ' je compte le nombre de cellule non vide de A
    nbrcellule = 0

    For Each cel In Range("A:A")

    If cel > "" Then

    nbrcellule = nbrcellule + 1
    End If

    Next cel

    ' je recupere la valeur de chaque cellule de A de wb1 qui correspond a une colonne dans le fichier dans lequel j'execute mon code
    For i = 2 To nbrcellule


    nom_feuil = ws1.Cells(i, 1)

    ' J'active feuille par feuille pour executer le reste du programme

    ThisWorkbook.Worksheets(nom_feuil).Activate

    'Copie des Entete

    ws1.Cells(i, 3) = enTete



    'Copie des indices
    'Boucle sur les lignes

    For i = IndiceDebutAnnee To IndiceFinAnneee
    'Boucle sur les colonnes
    For j = 2 To 13

    If wsCurrent.Cells(i, j).Value = 1 Then
    test = 1
    End If

    If test = 1 Then


    wsTMP.Cells(currentRow, 2) = wsCurrent.Cells(i, j) * 100
    currentRow = currentRow + 1

    Else: currentRow = currentRow + 1
    End If

    Next
    Next
    Donc vu que j'utilise deux fois la boucle for mais pas pour le meme classeur, il me renvoie une errreur, et je n'arrive pas a trouve une solution pour cela.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 45
    Points
    45
    Par défaut
    alors j'ai remplacé le premier i avec un k et sa marche.

    Par contre j'ai une erreur au niveau de
    if wsCurrent.Cells(i,j).Valule =1
    L'erreur est erreur automation 800401a8

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par info009 Voir le message
    J'ai besoin dans mon code d'imbriquer deux boucles for. Le problème qui se pose est que je travail sur deux fichiers, et si j'utilise les variables i et j pour le premier fichier, je pourrai pas le faire pour le deuxième, sinon il me généré une erreur.

    Est ce qu'il existe une solutions pour ce problème ?
    Dans le premier tu mets i1, j1, dans le second tu mets i2, j2.

    Tu peux aussi déclarer tes variables en Private pour éviter que chaque module influe sur l'autre.

    Petite précision : dans une boucle For, tu n'es pas obligé d'utiliser i et j. Si tu veux mettre "Bonjour" comme nom de variable, rien ne t'en empêche.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 45
    Points
    45
    Par défaut
    Merci, c'est une erreur de débutant

    Merci pour ces informations.

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par info009 Voir le message
    Par contre j'ai une erreur au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if wsCurrent.Cells(i,j).Valule =1
    Après la condition d'un If, on doit mettre un Then.
    Voir l'aide VBA Excel pour la syntaxe complète.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 45
    Points
    45
    Par défaut
    Non dans le code le then y est, c'était une autre faute que j'ai pu corriger.

    Merci.

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Autrement dit, tu nous demandes de trouver une erreur dans un code qui ne correspond pas à ce que tu as ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [XL-2007] ajouter la serie "X" dans un graphique en VBA avec variables pour Ligne et colonne
    Par maxime-a dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/04/2015, 14h40
  2. Utiliser une variable pour désigner une colonne
    Par NicolasDeVos dans le forum SQL
    Réponses: 2
    Dernier message: 12/06/2008, 09h12
  3. [Access SQL]Requetes SQL pour "inverser" ligne et colonne
    Par trihanhcie dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/07/2007, 13h12
  4. Réponses: 1
    Dernier message: 05/12/2006, 21h39
  5. Demande de conseil pour migration de lignes vers colonnes
    Par ririd dans le forum Administration
    Réponses: 6
    Dernier message: 04/11/2004, 17h02

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