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 en VBA sous Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut Macro en VBA sous Excel
    Bonjour,

    Je suis en train de travailler sur la création d'une base de donnée sur Excel à partir de questionnaires remplis sous Excel. Le principe est relativement simple puisque je dois rassembler toutes les réponses sous forme de tableau. Je cherche donc, dans un soucis d'économie de temps à créer une macro qui répetteras mon "copie/colle" dans mon tableau. Je suis toutefois confronté à un problème puisque les données à extraires sont systématiquement dans les mêmes cases mais dans des onglets différents.

    Voici un extrait de la macro que j'ai obtenu après enregistrement :
    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
    20
    21
    22
    23
    24
    25
    26
    27
        Sheets("ALLEMAGNE").Select
        Range("S5").Select
        Selection.Copy
        Sheets("Feuil1").Select
        Range("A2").Select
        ActiveSheet.Paste
        Sheets("ALLEMAGNE").Select
        Range("F5").Select
        Application.CutCopyMode = True
        Selection.Copy
        Sheets("Feuil1").Select
        Range("B2").Select
        ActiveSheet.Paste
        Sheets("ALLEMAGNE").Select
        Range("M5").Select
        Application.CutCopyMode = True
        Selection.Copy
        Sheets("Feuil1").Select
        Range("C2").Select
        ActiveSheet.Paste
        Sheets("ALLEMAGNE").Select
        Range("D8").Select
        Application.CutCopyMode = True
        Selection.Copy
        Sheets("Feuil1").Select
        Range("D2").Select
        ActiveSheet.Paste
    Pouvez vous donc me dire comment adapter ce modèle à tous mes onglets en même temps. On peut prendre "AUTRICHE" et "BENELUX" comme intitulé d'onglet suivant.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour et bienvenu sur le forum,


    pour boucler sur toutes les feuilles de ton classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Fl As Worksheet, i as long
     
    For Each Fl In Worksheets
     If Fl.NAME <> "Feuil1" ' pour ne pas passer sur la feuille 1
    ' Ici ton code par exemple :
       i = i + 1
      Fl.Range("S5").Copy destination:=WorkSheets("Feuil1").cells(i,1)
     end if
    Next Fl
    Edit : ça y est corrigé, voilà ce que c'est que de vouloir modifier le code directement sur le forum

  3. #3
    Membre éprouvé Avatar de Many31
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Par défaut
    Désolé mais peut tu décrires plus ton projet?

    Tu as combien de feuille? quelle est celle de référence (tu copie les données de ALLEMAGNE, BRUXELLE etc. vers une seule et unique feuille?)
    Et quel forme aura par la suite ton tableau? (colonne ligne etc.)

    Pke le générateur de macro c'est bien... Mais pas pratique à comprendre vu que c'est pas structuré

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut
    Tout d'abord merci aalex_38. Toutefois ton petit bout de programme ne fonctionne pas puisque lorsque je l'introduit dans mon algorithme, le débogage s'arrête sur la ligne : If F1.Name <> "Feuil1" Then
    Qu'est ce qui ne va pas ?

    Ensuite, pour toi Many31, mon fichier Excel de base est composé de 26 onglets avec des questionnaires remplis (les informations sont tout simplement entrées dans une cellule à chaque fois). Je dois rassembler l'ensemble des données dans un seul tableau (qui se trouve sur "Feuil1") avec un onglet par ligne.

    Merci d'avance et bonne journée !

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    le débogage s'arrête sur la ligne : If F1.Name <> "Feuil1" Then
    Qu'est ce qui ne va pas ?
    Oups, désolé, je boucle sur FL et je test F1, une erreur de syntaxe
    Je corrige dans le post précédent.

Discussions similaires

  1. Problème de macro en VBA sous excel
    Par Nadounette123 dans le forum Excel
    Réponses: 4
    Dernier message: 26/10/2013, 09h17
  2. Problème de macro en VBA sous excel
    Par Nadounette123 dans le forum Excel
    Réponses: 2
    Dernier message: 19/09/2013, 15h34
  3. Lenteurs de macros VBA sous Excel 2007 vs Excel 2003
    Par nicotab dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/11/2007, 18h47
  4. VBA sous excel - Macro - Création de feuilles à partir d'une liste
    Par Sylione dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2007, 09h42
  5. Une macro synthese en VBA sous excel!
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/12/2005, 20h37

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