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 :

Macro un peu complexe


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
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut Macro un peu complexe
    Bonjour à tous !

    Je suis en train de développer un logiciel d'analyse médicale sous excel. Mais j'ai du mal, ne connaissant pas assez bien VBA, à faire certaines macros.

    Je veux faire une sélection multiple dans plusieurs feuilles "DATA", "BTM" et "OBSTACLE" et les enregistrer dans une nouvelles feuilles (DB) qui me sert de "base de donnée". Ensuite je veux pouvoir ré-insérer ces données depuis la feuille "DB" dans les feuilles "DATA", "BTM" et "OBSTACLE".

    J'essaye depuis plusieurs jours mais je n'arrive à rien !

    Les cellules à sauver sont par ex : dans "DATA" --> "D3,N3,X3,D4, etc" puis "C15,E15", "B18 à B20" et dans "BTM" -->"AY23 à Ay25" puis dans "OBSTACLE" de "D5 à D205"

    Le fichier se trouve à http://pascontente.free.fr/ANA.xls.zip

    Si quelqu'un pouvait m'aider, merci.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ignore quelle est la version d'Excel que tu utilises mais on peut analyser le problème sans le fichier.
    Si j'ai compris : Tu as plusieurs feuilles de calculs rassemblant plusieurs types de données.
    Tu veux pouvoir sélectionner certaines données de ces différentes feuilles et les rassembler dans une seule.
    Pour le principe : Dans un userform, une série de listes proposant à la sélection chacune des données de chaque feuille. On détermine le nombre de listes à placer dans l'userform et on affecte à chacune d'elle la plage de données correspondante avec RowSource
    L'userform ouvert, ne restera plus qu'à sélectionner l'élément intéressant dans chaque liste.

    Pour le reporter dans une nouvelle feuille, plusieurs questions :
    - Cette feuille existe-t-elle ?
    - A-t-elle un format particulier ?
    - Si oui, utiliser une copie de cette feuille pour la récollection des données ?
    - Faut-il la créer ?

    Déjà, si tu commences par réaliser la première partie, tu y verras plus clair.
    Si tu as un pb, on avancera au cas par cas, ce sera plus simple que tout passer en revue en une fois.
    Bon courage
    A+

    Edit
    Bienvenue sur le forum !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut Merci pour ce début de réponse !
    Ce que j'essaye de faire c'est de récupérer les données, dans la feuille "DATA" par exemple. Mais j'ai déjà à ce niveau un problème parce que ces données se placent pas sur la même ligne à la suite comme je veux, mais sur une seconde ligne !!!

    partie du code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub sovdb()
    '
    ' sovdb Macro
    '
     
    '
        Range("D3,N3,X3,D4,N4,X4").Select
        Selection.Copy
        Sheets("DB").Select
        Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
            xlNone, SkipBlanks:=True, Transpose:=False
        Cells(16384, 2).End(xlUp).Offset(1, 0).Select
    End Sub
    où est le soucis ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu ne désignes pas de ligne pour le collage, alors le collage se place sur la ligne de la cellule active de ta feuille.
    Je suppose que tu veux coller ta ligne sur la première ligne vide de la feuille DB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ligne = Split(Worksheets("DB").UsedRange.Address, "$")(4) + 1
    Range("D3,N3,X3,D4,N4,X4").Copy
    Sheets("DB").Range("A" & Ligne).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Evite les selects, il ne servent qu'à ralentir la procédure
    A+

    Edit
    Je préciserais la feuille dans laquelle s'effectue la copy (pas le collage puisque c'est fait)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(NomDeLaFeuilleCopiée).Range("D3,N3,X3,D4,N4,X4").Copy

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut données mal enregistrées
    Bonjour,

    J'ai essayé de faire comme tu m'as dis mais les données s'enregistrent les une en dessous des autres et non l'une à côté de l'autre sur la même ligne.

    Je suis sous windows xp, et office 2007.
    j'ai essayés la fonction "offset" mais rien ne change !!!

    Puis-je encore te demander de l'aide ?

    Merci.
    Images attachées Images attachées  

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Une solution éventuelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    Dim Plage As Range, cel As Range, DerL As Integer, x As Integer
     
    Set Plage = Application.InputBox("Sélectionnez les cellules", "Sélection", , , , , , 8)
     
    DerL = Sheets("Feuil2").Range("A65535").End(xlUp).Row + 1
    x = 0
     
    For Each cel In Plage
        Sheets("Feuil2").Cells(DerL, 1).Offset(0, x) = cel.Value
        x = x + 1
    Next
    End Sub
    Tu lances la procédure, une boîte de dialogue te demande de sélectionner les cellules (tu en sélectionnes autant que tu veux, contigues ou pas avec Shift ou Ctrl), ensuite ces cellules seront copiées sur la première ligne vide de la feuille "Feuil2" (nom de la feuille à adapter)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut Solution inadéquate
    Merci pour ta macro, mais je voudrais que cela se fasse automatiquement.

    cf autre post de noisat, "lier des cellules dans les deux sens"

    Je pense être sur la bonne voie dans cette optique, et je continue de chercher.

    Je mettrais RESOLU dans ce post lorsque tout fonctionnera.

    @+

Discussions similaires

  1. [XHTML] Une mise en page un peu complexe
    Par psychoBob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 27/05/2006, 18h09
  2. Gérer un Formulaire un peu complexe pour moi
    Par budylove dans le forum Langage
    Réponses: 3
    Dernier message: 17/05/2006, 10h01
  3. Un Alignement un peu complexe
    Par Jeskor dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 27/04/2006, 17h04
  4. Requête de sélection un peu complexe
    Par new_wave dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/01/2006, 14h44
  5. Requete un peu complexe avec la fonction IN
    Par Taichin dans le forum Oracle
    Réponses: 27
    Dernier message: 10/11/2004, 08h59

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