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 :

Extraction automatique de données


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 12
    Par défaut Extraction automatique de données
    Bonjour à tous,

    Voilà je me suis fait un petit tableau Excel dans lequel le fait de rentrer une valeur dans une cellule (par exemple "B1") modifie une multitude de données (par le biais de formules)se trouvant bien évidemment dans d'autres cellules (par exemple "C3" et "C4").

    Il se trouve que j'ai environ 150 valeurs à rentrer dans "B1", et je voudrai, à chaque valeur de "B1", copier et coller "C3" et "C4" dans un nouvel onglet, pour en faire une sorte de synthèse.

    Mes capacités en VBA me limitent terriblement et je ne me sent pas non plus d'attaque pour le faire à la main...

    Si il y a quelqu'un pour m'aider, je suis preneur...

    merci d'avance

    A+

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    il faudrait savoir si tu executes ton code à partir d'un bouton ou d'un évènement de la feuille (ex : evenement change), dans quelles cellules de la nouvelle feuille veux-tu copier les données de c3, c4, etc.,
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour beast l'ami casefayere le forum par une evenementiel peut etre mais il faut savoir comment on les ranges + savoir si on exporte que les valeurs ect..
    un ex: basique

    Option Explicit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("b1")) Is Nothing Then
    Range("c3").Copy Destination:=Sheets(2).Range("A65536").End(xlUp)(2)
    Range("c4").Copy Destination:=Sheets(2).Range("b65536").End(xlUp)(2)
    End If
    End Sub

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Par défaut
    Bonjour !
    Je ne suis pas sure d'avoir tout compris mais voici une proposition de code (mais il faut appeler ce code, par un bouton, par exemple, voir à la fin du post) :
    Il ouvre à chaque fois une feuille, du nom de la valeur attribuée à B1 et y place les valeurs de B1, C3 et C4.

    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
    Sub essai()
     
    Valeur = InputBox("Valeur de B1")
    Range("B1").Value = Valeur
     
    C3 = Range("C3").Value
    C4 = Range("C4").Value
    Sheets.Add
    ActiveSheet.Name = "" & Valeur
    Range("A1").Value = "B1="
    Range("B1").Value = Valeur
    Range("A2").Value = "C3="
    Range("A3").Value = "C4="
    Range("B2").Value = C3
    Range("B3").Value = C4
    Sheets(1).Select
     
    End Sub
    Pour le bouton d'appel de ce code, voici une proposition de code à mettre en feuille 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub nouvelle_valeur()
    'Nouveau bouton pour entrer les valeurs de B1
     
    ActiveSheet.Buttons.Add(9.75, 3.75, 87.75, 36).Select
    Selection.OnAction = "essai"
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = "Nouvelle valeur"
     
    End Sub
    J'espère avoir pu t'aider.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 12
    Par défaut
    Merci à tous pour vos réponses,

    En fait, pour préciser un peu les choses, peu importe où les données vont être copiées.

    L'idée directrice de la macro est de faire tourner mes 150 valeurs dans la cellule B1 et de copier à chaque fois les cellules C3 et C4 pour faire une sorte de listing.
    L'objectif est que je n'ai pas à rentrer à la main les 150 valeurs et copier-coller à chaque fois les cellules C3 et C4...

    Je pense qu'il doit y avoir une boucle derrière ça mais je ne vois pas comment l'appliquer

    J'espère avoir été un peu plus clair dans mes explications

    Encore un grand merci à vous

  6. #6
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re le fil tes 150 valeurs c'est quoi!! une idee je rentre en b1 de 1 a 150 avec une boucle

    Option Explicit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub essai()
    Dim i As Byte
    For i = 1 To 150
    [b1] = i
    Next i
    End Sub

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/12/2006, 17h10
  2. [MySQL] Suppression automatique des données
    Par Angelik dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 14/12/2006, 22h06
  3. Réponses: 5
    Dernier message: 20/07/2006, 16h01
  4. extraction d'une donnée d'une chaine de caractères.
    Par LESOLEIL dans le forum Langage
    Réponses: 10
    Dernier message: 20/04/2006, 12h00
  5. Réponses: 2
    Dernier message: 27/03/2006, 21h17

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