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 :

Ajouter des valeurs dans un tableau avec vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Cadre en gestion de moyens
    Inscrit en
    Juin 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Cadre en gestion de moyens
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 38
    Par défaut Ajouter des valeurs dans un tableau avec vba
    Bonjour à tous ,

    Tous d'abord je vous souhaite une merveilleuse année .

    Je viens vers vous car je dispose de 2 tableaux Le 1° s'appelle PHP semaine1 et l'autre PHP semaine 52.
    Sur chaque tableau je dispose d'un tableau reprenant des dates et des numeros.
    Ce que je veux faire , c'est une fois le tableau 1° remplit, je voudrais par une macro que je nommerai "Report", récupérer les valeurs restantes du second tableau et venir les coller a la suite des valeurs du tableau 1°, des qu'il y a une cellule en Colonne A de Vide

    Mon tableau comporte 9 colonnes et commence a partir de la ligne 9 .

    Merci de votre aide

    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bonne année également.

    Il faudrait juste préciser :

    - le tableau "PHP semaine1" se trouve sur un fichier différent de celui contenant le tableau "PHP semaine 52" ou sur une feuille différente dans un même fichier ;
    - il est toujours utile de préciser la version d'Excel utilisée.

  3. #3
    Membre averti
    Homme Profil pro
    Cadre en gestion de moyens
    Inscrit en
    Juin 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Cadre en gestion de moyens
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2014
    Messages : 38
    Par défaut
    Merci d avoir répondu si vite.
    En effet j avais oublié de préciser, je travail avec Excel 2010, et oui les fichiers sont sur 2 fichiers différents. Mais ne t'inquiète pas je mettrais les adresses après.
    Merci

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

    Vous pouvez essayer ce code sur votre feuille Semaine1. Votre cas semblant être simple, je pense avoir utilisé la solution la plus simple. Il en existe d'autres, bien évidemment.
    Modifiez bien sûr les noms de fichiers, de feuilles (si nécessaires), du chemin, de variables si vous le voulez (je prends toujours les noms les plus courts.
    Bien évidemment, faites toujours un essai sur une copie de vos fichiers.


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Sub Copie_s52()
    Dim dls1&, dls52&, dcol&
    Dim pls1%, pls2%
    Dim vlg9$, chemin$, fich1$, fich52$
     
    '1re ligne de données du fichier 1
    pls1 = 9
    '1re ligne de données du fichier 52 (on peut ne mettre qu'une variable, c'est pour le cas _
    'ce serait différent
    pls52 = 9
    'dernière colonne uitlisée
    dcol = 9
    'modifier pour le vrai chemin
    chemin = "C:\A_Documents\"
    'modifier avec le véritable nom
    fich1 = "PHP_Semaine_1A.xls"
    'modifier avec le véritable nom
    fich52 = "PHP_Semaine_52.xls"
     
    On Error Resume Next
    Workbooks(fich52).Activate
    If Err <> 0 Then
    If Dir(chemin & fich52) = "" Then
    MsgBox "Le fichier n'a pas été trouvé.Vérifiez !"
    End
    End If
    Workbooks.Open Filename:=chemin & fich52
    End If
    vlg9 = Workbooks(fich52).Sheets("Feuil1").Range(Cells(pls52, 1), Cells(pls52, 1))
     
     
        If vlg9 = "" Then
        MsgBox "Aucune donnée à copier n'a été trouvée en ligne 9 colonne A."
        End
        Else
        dls52 = Workbooks(fich52).Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
        dls1 = Workbooks(fich1).Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
        End If
     
    Workbooks(fich52).Sheets("Feuil1").Activate
    Range(Cells(pls52, 1), Cells(dls52, dcol)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Workbooks(fich1).Sheets("Feuil1").Activate
    Range(Cells(dls1, 1), Cells(dls1, 1)).Select
    ActiveSheet.Paste
    End Sub
    N'hésitez pas si vous avez une question.

    En cas de besoin n'hésitez pas non plus à regarder les tutoriels sur le VBA pour Excel.
    Dernière modification par Invité ; 06/01/2016 à 16h25.

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par jacques_jean Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.ScreenUpdating = False
    On Error Resume Next
    Ne jamais mettre ce type d'instructions dans un code tant qu'on est en phase de développement.
    Un On Error, c'est la meilleure façon de ne pas comprendre les problèmes qui peuvent survenir.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    C'était juste un conseil.

    Personnellement, je n'utilise jamais ces instructions.
    Je préfère prévoir les cas d'erreur potentiels et les traiter par code.
    Par exemple, plutôt que de mettre un On Error pour gérer l'ouverture d'un fichier inexistant, je préfère vérifier si le fichier est ouvert, par exemple avec une boucle For Each sur Workbooks.

    Et s'il se produit une erreur imprévue, l'avantage de ne pas utiliser On Error, c'est que le programme plante à l'endroit où se situe le problème et met le doigt dessus.
    Par exemple, dans ton code, si le fichier n'est pas trouvé, le vlg9 = sera aussi en erreur mais sera sauté et ainsi de suite pour toutes les lignes qui suivent. Au final, la macro se déroulera sans générer d'erreur mais sans faire le job (ou en le faisant de manière anormale) sans qu'on sache pourquoi.

    C'est juste ma façon de travailler.

Discussions similaires

  1. Calcul et Modification des valeurs dans un Tableau avec Java
    Par Khalfe dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 25/09/2015, 02h36
  2. [XL-2013] Prendre des données dans un tableau avec VBA
    Par tombain35 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/05/2015, 10h46
  3. [WD18] Ajouter des valeurs dans un tableau simple
    Par olihop dans le forum WinDev
    Réponses: 2
    Dernier message: 18/11/2014, 11h23
  4. Ajouter des valeurs dans un tableau
    Par Mrlaurent90 dans le forum BIRT
    Réponses: 4
    Dernier message: 09/03/2011, 10h55
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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