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 :

Boucle et Colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 92
    Par défaut Boucle et Colonne
    Bonjour,

    Je galère vachement pour écrire une procédure qui, en fonction du nombre de colonnes, copie une partie du contenu de chaque cellule dans un nouvel onglet :

    Mon code actuel est le suivant (mais la fonction Range() est assez rigide, et la fonction Cells() ne semble pas convenir) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Pos, Ligne, Colonne As Integer
    'Ligne et Colonne sont déjà définis
    For j = 2 To Colonne
         For i = 9 To Ligne
              'Doit récupérer la position de " of " dans une cellule contenant des rapports style "333 of 999"          Pos = InStr(Worksheets("Dashboard").Cells(j + 4, i), " of ")
              'Dans ce cas précis, extrait les 3 premiers caractères de la cellule          Range("B" & i - 7) = Left(Worksheets("Dashboard").Range("F" & i), Pos)
         Next
    Next
    Si le nombre de colonnes était toujours le même, j'entrerais un code différent, mais je voudrais pouvoir me décaler d'une colonne à l'autre de manière dynamique.

    Merci d'avance pour votre aide,
    Phil....

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonsoir,

    habituellement l'on demande au posteur de nous montrer son code, bon toi c'est pas la peine tu nous le montre mais tu nous dis pas ce qu'il doit faire...

    une seule remarque
    ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Pos, Ligne, Colonne As Integer
    seule Colonne et déclarer en integer , les deux autres variables sont des variants

    de plus Colonne est alors initialisé à 0 et Pos et Ligne à "Nothing"

    la boucle suivante
    ne s'exécute donc pas vu que Colonne est < à 2...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 92
    Par défaut
    Comme j'ai mis en commentaire, les variables Ligne et Colonne sont déjà définies dans un code un peu plus haut. On va dire que Ligne = 500 et Colonne = 5

    Ce code doit récupérer une partie d'une cellule (toute la partie gauche avant " of ") sur 500 lignes et 5 colonnes du premier onglet du classeur, et copier la valeur dans 500 lignes et 5 colonnes du nouvel onglet créé.

    Le problème, c'est que je vois bien comment passé d'une ligne à l'autre avec la commande For i = 1 etc. mais je ne vois pas comment faire pour les colonnes. Avec Range j'arrive à extraire les données, mais sur une seule clolnne prédéfinie à l'avance, et avec Cells je peux me déplacer de colonne en colonne, mais pas sortir de donnée.... D'où mon désaroi...

    Phil....

  4. #4
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Citation Envoyé par TaleMaker Voir le message
    Comme j'ai mis en commentaire, les variables Ligne et Colonne sont déjà définies dans un code un peu plus haut. On va dire que Ligne = 500 et Colonne = 5....
    et donc ton code doit provoquer une errer sur cette ligne Dim ..!




    avec Cells je peux me déplacer de colonne en colonne, mais pas sortir de donnée
    bien sur que si tu peu, sauf que dans ta ligne en commentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pos = InStr(Worksheets("Dashboard").Cells(j + 4, i), " of ")
    tu semble avoir inversé ligne et colonne :
    Cells(rwIndex, colIndex) => Cells( LigneIndex, ColonneIndex)

    avant de poser le résultat dans ta deuxiéme feuille contrôle bien que pos soit > 0 ...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 92
    Par défaut
    J'ai inversé les lignes et les colonnes................

    C'est vrai que maintenant ça marche bcp mieux.... Toutes mes confuses pour le dérangement....

    Merci pour les conseils en tout cas....

    Phil....

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

Discussions similaires

  1. Boucle sur colonne
    Par slimlus dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 16/09/2010, 11h57
  2. [XL-97] Boucle sur colonne + replace
    Par brasco06 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2009, 10h59
  3. Boucle sur colonnes
    Par leaprovence dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/05/2008, 23h45
  4. [vba-E2003] problème boucle sur colonne
    Par stargates dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/07/2007, 19h57
  5. [VBA-E]Numero de ligne et boucle de colonne
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2006, 12h10

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