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 :

Questions de debutant


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
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Par défaut Questions de debutant
    Bonjour,

    Je cherche à modifier un tableau pour l'exporter ensuite vers une table access.
    Pour ce faire, j'ai besoin de déplacer les valeurs des cellules.
    Mon code devrait être "tant que titre colonne non vide" (par exemple, C5,D5,E5,...) alors
    on rentre dans la colonne et on fait des deplacements.
    On passe à la colonne suivante.

    3 questions :
    1. Comment remplacer l'adresse du titre de la colonne par une variable et la faire décaler d'une colonne en fin de "tant que"
    2. Comment déplacer la valeur des cellules et non simplement la copier : pour l'instant je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(A100).value = Range (A1).value
    mais ca ne fait que copier
    3. Quand je déplace je recrée en fait un autre tableau en créant une nouvelle ligne à chaque fois. pour le déplacement de la première colonne pas de tableau. Par contre comment lui faire remplir la bonne case pour la colonne X sachant que chaque colonne du tableau 1 remplit une plage équivalent à une plage A1E31 du tableau 2...

    Merci d'avance

    Bruno

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    pas tout saisi mais déja
    Citation Envoyé par crat
    pour l'instant je fais Range(A100).value = Range (A1).value mais ca ne fait que copier
    pour celle la, il te suffit de rajouter une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range(A100).value = Range (A1).value 
    range (A1) = ""
    c'est de toute maniere moins lourd que copier coller, mais par contre si il te faut le format tu n'y coupes pas.
    pour la variable de n° de colonne, je n'ai pas de réponse ferme, flemme de verifier, mais tu peux prendre column(...et pis zut, j'ai vérifié. tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    i = 3
    columns(i).select
    pour la troisieme question, j'arrive pas a capter ce que tu demande

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Par défaut
    Pour le changement de colonne je vois pas trop, en fait ce que je veux faire c'est une boucle "tant que cellule non vide" et qui vérifie d'abord la case A1 puis B1, C1, D1,...
    Donc en le mettant en dur ca marche mais je voudrais ne pas devoir taper B1,C1,D1...

    Pour la 3eme question j'ai besoin de modifier mon tableau pour l'exporter sous access. pour cela je crée un 2eme tableau.
    La modification consiste à créer une ligne dans le tableau 2 pour chaque cellule d'une colonne du tableau 1.Par exemple dans tableau 1, j'ai les lignes qui donnent les jours, les colonnes les employés. L'intersection des 2 donnent le nombre d'heures travaillees. Je voudrais que ca me donne dans le tableau 2 31 lignes, chacune reprenant le nom de l'employé, le jour et le nombre d'heures travaillées.

    Est ce plus clair ou pas ? lol

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Est-ce que ceci
    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 RetournerTableau()
        Dim ligne As Range, cellule As Range
        Dim r As Integer, c As Integer  ' Row et Col
        With Feuil1
            Set ligne = .Range(.Range("A1"), .Range("A1").End(xlToRight))
     
            Do
                For Each cellule In ligne
                    ' inversion des adresses de cellule
                    r = cellule.Column
                    c = cellule.Row
                    Feuil2.Cells(r, c) = cellule.Value
                Next
                Set ligne = ligne.Offset(1, 0)
                r = ligne.Row
            Loop While .Range("A" & r).Value <> ""
        End With
        Set ligne = Nothing
    End Sub
    fera l'affaire ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Par défaut
    Je crois que c'est pas mal mais le soucis c'est que pour chaque employé et chaque jour je n'ai pas qu'une seule donnée mais 12 donc en gros, une cellule du tableau 1 donnera 12 lignes du tableau 2.
    Si quelqu'un a besoin d'un exmple du tableau 1 et de ce que ca doit donner en tableau, je le mets en PJ
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Je m'aperçois que c'est plus complexe que ce que j'avais imaginé au départ. Je croyais que tu voulais retourner un tableau de ce type

    Entête1 Donnée1 Donnée2 DonnéeN
    Entête2 Donnée1 Donnée2 DonnéeN

    en un tableau

    Entête1 Entête2
    Donnée1 Donnée1
    Donnée2 Donnée2
    DonnéeN DonnéeN

    Mais même avec le fichier exemple, j'avoue ne pas comprendre ce que tu veux faire.

Discussions similaires

  1. Questions de debutant (C : console application)
    Par Fredovsky dans le forum C
    Réponses: 3
    Dernier message: 23/03/2006, 12h59
  2. question de debutant sur les applets et la securité
    Par Invité dans le forum Applets
    Réponses: 2
    Dernier message: 27/01/2006, 14h10
  3. [C#] Question de debutant: methode "parent&quo
    Par bflash2k dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/01/2006, 15h37
  4. 2 questions de debutant
    Par New_programm_er dans le forum Ordinateurs
    Réponses: 6
    Dernier message: 29/12/2005, 08h32
  5. Vue parametrée (suite) - Question de debutant
    Par zorglob dans le forum Oracle
    Réponses: 1
    Dernier message: 28/12/2005, 11h28

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