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 :

Copier des informations dans plusieurs cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Par défaut Copier des informations dans plusieurs cellules
    Bonjour,
    Tout d'abord j'espère avoir posté ma question dans le bon forum.
    Je suis à la recherche d'une macro excel qui me permettrait de copier les informations de la dernière cellule renseignée.
    Je m'explique, j'ai un tableau avec des noms de produit (un nom par ligne) et des variations de prix du produit en fonction du temps. Le produit ne variant pas toujours de prix, lorsque le prix est stable, la cellule est vide. J'aimerai que cette cellule soit remplie par le dernier prix connu jusqu'à ce qu'une baisse ou hausse de prix arrive. A ce moment là, il faut laisser le nouveau prix et continuer ainsi jusqu'à la 3ème modification de prix, etc. Je vous joins un exemple avec dans la feuille 1, le tableau tel qu'il est, et dans la feuille 2 ce que je recherche à faire : http://cjoint.com/?0ElpVUFmMeo
    Merci pour votre aide
    comefs

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut

    J'aimerai que cette cellule soit remplie par le dernier prix connu jusqu'à ce qu'une baisse ou hausse de prix arrive. A ce moment là, il faut laisser le nouveau prix et continuer ainsi jusqu'à la 3ème modification de prix, etc
    Ce que tu appelles nouveau prix, c'est la dernière hausse / baisse connue ?

    Si tel est le cas, un début de quelque chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub comefs()
    col = ActiveSheet.Range("FF1").End(xlToLeft).Column
    lig = ActiveSheet.Range("A65536").End(xlUp).Row
     
    For i = 2 To lig
        If Cells(i, col) = "" Then
            Cells(i, col) = Cells(i, col - 1)
            Cells(i, col).Interior.Color = 65535
        End If
    Next i
     
    End Sub
    Produit en colonne A.

    Tiens nous au jus.

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Par défaut encore une petite précision
    bonjour firhim
    Merci pour ta réponse. Tu as raison, ce que j'appelle nouveau prix et une hausse ou une baisse de prix.
    Peut être que je ne comprends rien car je suis totalement débutant pour les macro mais pourrais tu me dire pourquoi tu commences la macro à la colonne FF1? En copiant/collant la macro et en l'exécutant, rien ne se passe. Que dois-je faire de plus?
    Merci à toi,
    Comefs

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    effectivement, mon code manque de détails.

    Le revoici avec des commentaires :

    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
    Sub comefs()
    'Déclaration des variables
    Dim i as integer
    Dim col as integer
    Dim lig as integer
     
    col = ActiveSheet.Range("IV1").End(xlToLeft).Column 'variable pour trouver la dernière colonne pleine. FF1 est une colonne très loin dans le classeur...Je le remplace par IV1 = colonne la plus loin 
    lig = ActiveSheet.Range("A65536").End(xlUp).Row 'variable pour trouver la dernière ligne pleine. A65536 = la dernière ligne en colonne A
     
    'Boucle permettant de rechercher les cellules sans prix. Une fois ces dernières trouvées, cellules de prix vide = dernier prix pratiqué 
    For i = 2 To lig
        If Cells(i, col) = "" Then
            Cells(i, col) = Cells(i, col - 1)
            Cells(i, col).Interior.Color = 65535 'Met les cellules modifiées en jaune
        End If
    Next i
    'Fin de la boucle
     
    End Sub
    Voilà ce que le code réalise :

    AVANT


    APRES


    C'est possible que j'ai mal interprété ton explication car je n'ai pas ouvert ton fichier.. (pas par mauvaise volonté, mais parce que je suis sur un réseau limité d’entreprise).

    Je t'invite à lire l'excellent tutoriel de Jean-Marc Rabilloud : http://bidou.developpez.com/article/VBA/

Discussions similaires

  1. [XL-2013] Copier des informations dans un tableau selon une référence
    Par hvegung dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/06/2015, 12h14
  2. Réponses: 1
    Dernier message: 10/09/2014, 20h39
  3. [XL-2013] Copier des résultats dans plusieurs cellules
    Par Theo dort dans le forum Excel
    Réponses: 4
    Dernier message: 01/03/2014, 11h25
  4. [XL-2003] copier des informations d'un fichier xls dans un autre fichier xls
    Par ironfalcon dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 23/03/2010, 13h39
  5. [PPT-2003] Copier le contenus de plusieurs cellules Excel dans une seule liste-texte ppt
    Par mimilll dans le forum VBA PowerPoint
    Réponses: 8
    Dernier message: 02/06/2009, 19h45

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