Crunchez vos adresses URL
|
Calculez la conso électrique de votre PC
|
Hébergez vos photos
Page 7 sur 7 PremièrePremière 1234567
Affichage des résultats 181 à 202 sur 202

Discussion: Excel

  1. #181
    Sinon tu fais un fichier exemple avec des noms bidons genre dupont durand, etc...

  2. #182
    Il faut peut-être forcer la conversion (ce qui transforme les champs d'un csv en cellules distinctes, ici en séparateur ; ).
    J'ai déjà du faire ça un jour, import d'un fichier csv dans un onglet d'un Excel, faudrait que je recherche.

  3. #183

  4. #184
    Bonjour, j'ai besoin d'utiliser Excel pour une tache très répétitive que j'aimerais automatiser.
    J'ai des tableaux contenant chacun un titre et une série de nombre dont je dois diviser avec le premier nombre de la série. Ensuite je créé un graphe avec ces données.
    Puis vu que j'ai quelques centaines de tableaux de ce type qui se suivent sur la même feuille avec lesquels je dois faire la même chose, un raccourci clavier ça me serait pratique.

    C'est un truc de ce genre.


    Je chercherais à avoir une macro qui me permette de générer le graphe en sélectionnant une plage de données (le deux premières colonnes).

    Merci d'avance.

  5. #185
    Tu pourrais filer un fichier excel bidon de 1 ou 2 pages que je regarde les datas pour te faire ce qu'il faut si j'y arrive ?

  6. #186
    Je t'enverrais ça demain
    Merci beaucoup.

  7. #187
    Hello !
    Déterrage de topic

    J'ai un truc super relou à faire à mon travail, ça consiste à déclarer les paies, pour le service paie..
    En gros je leurs remplis un fichier où je note chaque absence, chaque congés, le nombre de dimanche travaillés, le nombre de tickets restau, et ça pour 20 personnes.
    Le truc ULTRA chiant quoi.
    J'ai donc mis pas mal de temps pour appréhender des macros simples car je suis plutôt dans la catégorie "débutant j'écris un bout de code et je sers les fesses pour que ça fonctionne" (cf questions posées sur la page précédente), mais je progresse un peu, et je suis arrivé avec ceci :
    Ca copie colle les données de 3 plannings dans le fameux fichiers atroce à remplir.

    Code:
    Sub maj()
    'on assigne les variables
    Dim dim_debut_bx As String, dim_debut_cv As String, dim_debut_tlse As String
    Dim dim_fin_bx As String, dim_fin_cv As String, dim_fin_tlse As String
    Dim tr_debut_bx As String, tr_debut_cv As String, tr_debut_tlse As String
    Dim tr_fin_bx As String, tr_fin_cv As String, tr_fin_tlse As String
    Dim fastpaie_copier_debut_bx As String, fastpaie_copier_debut_cv As String, fastpaie_copier_debut_tlse As String
    Dim fastpaie_copier_fin_bx As String, fastpaie_copier_fin_cv As String, fastpaie_copier_fin_tlse As String
    Dim fastpaie_coller_bx As String, fastpaie_coller_cv As String, fastpaie_coller_tlse As String
    Dim fastpaie_coller_dim_bx As String, fastpaie_coller_dim_cv As String, fasptaie_coller_dim_tlse As String
    Dim fastpaie_coller_tr_bx As String, fastpaie_coller_tr_cv As String, fastpie_coller_tr_tlse As String
    
    dim_debut_bx = Worksheets("miseajour").Range("B3").Value
    dim_debut_cv = Worksheets("miseajour").Range("D3").Value
    dim_debut_tlse = Worksheets("miseajour").Range("C3").Value
    dim_fin_bx = Worksheets("miseajour").Range("B4").Value
    dim_fin_cv = Worksheets("miseajour").Range("D4").Value
    dim_fin_tlse = Worksheets("miseajour").Range("C4").Value
    tr_debut_bx = Worksheets("miseajour").Range("B5").Value
    tr_debut_cv = Worksheets("miseajour").Range("D5").Value
    tr_debut_tlse = Worksheets("miseajour").Range("C5").Value
    tr_fin_bx = Worksheets("miseajour").Range("B6").Value
    tr_fin_cv = Worksheets("miseajour").Range("D6").Value
    tr_fin_tlse = Worksheets("miseajour").Range("C6").Value
    fastpaie_copier_debut_bx = Worksheets("miseajour").Range("B7").Value
    fastpaie_copier_debut_cv = Worksheets("miseajour").Range("D7").Value
    fastpaie_copier_debut_tlse = Worksheets("miseajour").Range("C7").Value
    fastpaie_copier_fin_bx = Worksheets("miseajour").Range("B8").Value
    fastpaie_copier_fin_cv = Worksheets("miseajour").Range("D8").Value
    fastpaie_copier_fin_tlse = Worksheets("miseajour").Range("C8").Value
    fastpaie_coller_bx = Worksheets("miseajour").Range("B9").Value
    fastpaie_coller_cv = Worksheets("miseajour").Range("D9").Value
    fastpaie_coller_tlse = Worksheets("miseajour").Range("C9").Value
    fastpaie_coller_dim_bx = Worksheets("miseajour").Range("B10").Value
    fastpaie_coller_dim_cv = Worksheets("miseajour").Range("D10").Value
    fastpaie_coller_dim_tlse = Worksheets("miseajour").Range("C10").Value
    fastpaie_coller_tr_bx = Worksheets("miseajour").Range("B11").Value
    fastpaie_coller_tr_cv = Worksheets("miseajour").Range("D11").Value
    fastpaie_coller_tr_tlse = Worksheets("miseajour").Range("C11").Value
    
    'on ouvre les différents fichier et on leur assigne des noms
    MsgBox "Ouvrir le planning de Bordeaux"
    Bx = Application.GetOpenFilename("Classeurs Excel,*.xlsm")
    If Bx = False Then Exit Sub
    Workbooks.Open fileName:=Bx
    Dim Bordeaux As String
    Bordeaux = ActiveWorkbook.Name
    'toulouse
    MsgBox "Ouvrir le planning de Toulouse"
    TLS = Application.GetOpenFilename("Classeurs Excel,*.xlsm")
    If TLS = False Then Exit Sub
    Workbooks.Open fileName:=TLS
    Dim Toulouse As String
    Toulouse = ActiveWorkbook.Name
    'charente vendée
    MsgBox "Ouvrir le planning de Charente Vendée"
    CV = Application.GetOpenFilename("Classeurs Excel,*.xlsm")
    If CV = False Then Exit Sub
    Workbooks.Open fileName:=CV
    Dim Charente As String
    Charente = ActiveWorkbook.Name
    'fastpaie
    MsgBox "Ouvrir le Fastpaie"
    Fastp = Application.GetOpenFilename("Classeurs Excel,*.xls")
    If Fastp = False Then Exit Sub
    Workbooks.Open fileName:=Fastp
    Dim Fastpaie As String
    Fastpaie = ActiveWorkbook.Name
    'copier coller des données du planning de bordeaux
    'planning
    Windows(Bordeaux).Activate
    Sheets(2).Select
        Range(fastpaie_copier_debut_bx, fastpaie_copier_fin_bx).Copy
        Windows(Fastpaie).Activate
        Sheets(1).Select
        Range(fastpaie_coller_bx).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        'prime de dimanche
        Windows(Bordeaux).Activate
        Range(dim_debut_bx, dim_fin_bx).Copy
        Windows(Fastpaie).Activate
        Range(fastpaie_coller_dim_bx).Select
        ActiveSheet.Paste
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
       'tickets restaurant
        Windows(Bordeaux).Activate
        Range(tr_debut_bx, tr_fin_bx).Copy
        Windows(Fastpaie).Activate
        Range(fastpaie_coller_tr_bx).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    'copier coller des données du planning de charente vendée
    'planning
        Windows(Charente).Activate
        Sheets(2).Select
        Range(fastpaie_copier_debut_cv, fastpaie_copier_fin_cv).Copy
        Windows(Fastpaie).Activate
        Range(fastpaie_coller_cv).Select
        ActiveSheet.Paste
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    'prime de dimanche
        Windows(Charente).Activate
        Range(dim_debut_cv, dim_fin_cv).Copy
        Windows(Fastpaie).Activate
        Range(fastpaie_coller_dim_cv).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    'tickets restaurant
        Windows(Charente).Activate
        Range(tr_debut_cv, tr_fin_cv).Copy
        Windows(Fastpaie).Activate
        Range(fastpaie_coller_tr_cv).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    'copier coller des données du planning de toulouse
    'planning
        Windows(Toulouse).Activate
        Sheets(2).Select
        Range(fastpaie_copier_debut_tlse, fastpaie_copier_fin_tlse).Copy
        Windows(Fastpaie).Activate
        Range(fastpaie_coller_tlse).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    'prime de dimanche
        Windows(Toulouse).Activate
        Range(dim_debut_tlse, dim_fin_tlse).Copy
        Windows(Fastpaie).Activate
        Range(fastpaie_coller_dim_tlse).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    'tickets restaurant
        Windows(Toulouse).Activate
        Range(tr_debut_tlse, tr_fin_tlse).Copy
        Windows(Fastpaie).Activate
        Range(fastpaie_coller_tr_tlse).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     MsgBox "Mise à jour du Fastpaie effectuée !"
    End Sub
    Je fais un collage spécial "valeurs", d'où le
    Code:
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    J'ai trouvé ça en utilisant l'enregistreur de macros, mais je pense qu'il doit y avoir un code moins dégueulasse qui existe non ?

    Idem pour tout le processus pour coller des données :
    Code:
    Windows(Fastpaie).Activate
        Sheets(1).Select
        Range(fastpaie_coller_bx).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    est-ce qu'il n'y a pas moyen d'alléger le code ?

    Je demande car le pc sur lequel je fais ça n'est pas une foudre de guerre et prend cher quand il ouvre les fichiers plannings qui contiennent un bon millier de fonctions si en tout genre..

    Egalement à la fin j'aimerai bien fermer mes 3 fichiers plannings Bordeaux, Charente, et Toulouse, et que ça l'enregistre pas, mais là c'est pas juste du copier coller donc je sais pas faire
    Si quelqu'un pouvait me donner le petit bout de code qui fait ça !
    Dernière modification par dingo47 ; 27/07/2017 à 12h31.

  8. #188
    La fonction pour clore c'est Workbooks.close de mémoire.

    Perso je pense que tu devrais envisager de le faire différemment si la machine a du mal.

    Là tu ouvres tout, tu copies tout et tu colles tout. Perso je ferais :
    -Ouverture d'un fichier
    -Copier
    -Coller
    -Fermeture du fichier

    en boucle.

    Si tu veux un coup de main, ça serait pas mal de fournir des fichiers exemples (avec des noms / montants modifiés) si tu veux bien

  9. #189
    Ah oui je n'avais pas pensé à ça !! Du coup j'ai mis la workbooks(nomdufichier).close savechanges:=false à la fin de chaque cycle de copier/coller et ça a bien accéléré les choses ! Dans le même esprit au lieu d'ouvrir tous les fichiers au début, je les ouvre au fur et à mesure.
    merci
    Je note ta proposition mais ce n'est pas nécessaire je suis à peu près arrivé à ce que je voulais. Après y'aurait toujours des améliorations à apporter, du genre faire détecter à excel le nombre de collaborateurs par région pour qu'il définisse tout seul les valeurs des cellules qui me servent à paramétrer le truc (B3 à D11); mais bon ça me va bien comme c'est !
    Dernière modification par dingo47 ; 27/07/2017 à 14h07.

  10. #190

  11. #191
    A savoir, que tu as moyen de passer par des sources de données (tes fichiers sources), récupérer ses données et les insérer dans l'Excel que tu souhaites (sans passer par l'émulation du copié-collé).

  12. #192
    ah ? bien ça !! tu aurais une documentation ou un tutoriel à me conseiller sur le sujet ? Après j'arrive à peu près à me débrouiller en général

  13. #193
    Regarde ce genre de liens :
    https://officetricks.com/different-m...al-excel-file/
    ou ça :
    https://stackoverflow.com/questions/...containing-vba (en virant le côté ouverture du fichier manuelle)

    Logiquement ça devrait être BEAUCOUP plus rapide qu'en faisant ta technique de copié-collé

  14. #194
    Sympa, donc si je comprends bien.. Suffit que j'adapte ça à mon cas

    Code:
    Sub VBA_Read_External_Workbook()
     
        '''''Define Object for Target Workbook
        Dim Target_Workbook As Workbook
        Dim Source_Workbook As Workbook
        Dim Target_Path As String
        
        '''''Assign the Workbook File Name along with its Path
        '''''Change path of the Target File name
        Target_Path = "D:\Sample.xlsx"
        Set Target_Workbook = Workbooks.Open(Target_Path)
        Set Source_Workbook = ThisWorkbook
        
        '''''With Target_Workbook object now, it is possible to pull any data from it
        '''''Read Data from Target File
        Target_Data = Target_Workbook.Sheets(1).Cells(1, 1)
        Source_Workbook.Sheets(1).Cells(1, 1) = Target_Data
        
        '''''Update Target File
        Source_data = Source_Workbook.Sheets(1).Cells(3, 1)
        Target_Workbook.Sheets(1).Cells(2, 1) = Source_data
        
        '''''Close Target Workbook
        Source_Workbook.Save
        Target_Workbook.Save
        Target_Workbook.Close False
        
        '''''Process Completed
        MsgBox "Task Completed"
        
    End Sub

  15. #195
    Je le ferai dans le sens inverse : Tu ouvres ton Excel de destination (Target_Workbook) et tes sources sont les 3 fichiers de planning
    Parce que sinon, ça veut dire qu'il faut que tu ouvres les 3 fichiers et que tu lances 3 fois la macro.
    Sinon, en passant par ODBC c'est aussi plutôt pas mal, parce que tu n'as plus à te soucier de vérifier que t'es à la dernière ligne de ton fichier, etc.
    Dernière modification par deathdigger ; 29/07/2017 à 09h14.

  16. #196
    Arrêtez tout, j'ai trouvé mieux qu'Excel. Son clone de LibreOffice, en version 5.




    Mais je crois qu'ils prévoient d'ajouter l'arithmétique dans la version 6.

  17. #197
    C'est une notation foireuse A$2 non ?

    Après ils auraient pu faire un effort pour mettre une erreur...

  18. #198
    Citation Envoyé par Møgluglu Voir le message
    Arrêtez tout, j'ai trouvé mieux qu'Excel. Son clone de LibreOffice, en version 5.

    http://tof.cx/images/2017/09/14/00c0...ce432e9a89.png
    http://tof.cx/images/2017/09/14/c678...21a3d056f5.png

    Mais je crois qu'ils prévoient d'ajouter l'arithmétique dans la version 6.
    Non mais je ne comprends toujours pas pourquoi toutes les sociétés du monde entier continuent à utiliser la bouze de chez Micr0$0ft alors que y'a des alternatives gratos

    Sinon, j'ai testé Excel version web (office online), et c'est disponible pour ceux qui n'ont pas office (faut juste un compte MS). C'est top, et ça évite de réapprendre des formules comme avec Google Sheets.

  19. #199
    Citation Envoyé par Wobak Voir le message
    C'est une notation foireuse A$2 non ?
    J'ai toujours écrit mes formules avec des références absolues comme ça dans tous les tableurs que j'ai utilisé. C'est foireux ?

    J'ai l'impression que le bug est dans le code qui détermine ce qu'il faut recalculer, qui se vautre quand il a des intervalles mélangeant une référence absolue et une référence relative.

  20. #200
    La notation absolue c'est $A$2, pas A$2 si ma mémoire ne me joue pas des tours.

  21. #201
    $A$2 pour fixer à la fois la colonne A et la ligne 2, $A2 pour fixer seulement la colonne A et A$2 pour fixer seulement la ligne 2.

  22. #202
    Alors c'est pas absolu c'est "Mixed" #mauvaisefoi

    Plus sérieusement, ça fait sacrément moche comme bug...

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •