Uniformisation des données avec VBA

Résolu
Maxime_Martel Messages postés 22 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -

Bonjour tous le monde, 

j'aimerais uniformisé un fichier Excel à l'aide de VBA. 

J'ai un fichier de description de stations par années. dans le fichier exemple la description des stations ne change pas, mais dans le fichier original j'ai une colonne avec les cordonnées GPS qui elle change. j'aimerais quand j'ajoute les station de une année la description ce mette automatiquement et que l'orthographe soit la même que la trame. 

Es ce que cela est possible avec VBA? 

Voici le liens du ficher exemple: 
https://www.cjoint.com/c/LGwiOoAndrH

Merci d'avance  
Maxime


Windows / Edge 103.0.1264.62

7 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     

    Bonjour,

    ajoute les station de une année la description ce mette automatiquement et que l'orthographe soit la même que la trame.

    Vous ajoutez ou et quoi dans quelle feuille?

    Qu'est ce qui doit se mettre automatiquement et dans quelle feuille?

    0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     

    Bonjour

    Ton fichier exemple ne montre pas grand chose de ce que tu attends.

    1. dans le fichier exemple la description des stations ne change pas,

    S'agit il du contenu de la feuille Trame ?

    2.1 mais dans le fichier original j'ai une colonne avec les cordonnées GPS

    Là, on n'a rien dans tes deux feuilles

    2.2 qui elle change

    la colonne, les coordonnées GPS, et comment ça change ?

    3.1.  j'aimerais quand j'ajoute les station de une année

    dans quelle feuille ?

    3.2. la description ce mette automatiquement et que l'orthographe soit la même que la trame. 

    peux tu préciser

    Il faudrait un fichier plus parlant avec des exemples de résultats attendus.

    De plus si tu veux une macro, ton fichier exemple doit avoir la même structure que l'original et contenir des informations de même type.

    Cdlmnt

    0
  3. Maxime_Martel Messages postés 22 Statut Membre
     

    J'ai refait le fichier exemple j'ai mis une partit du fichier original pour que se soit plus représentatif. 

     https://www.cjoint.com/c/LGwmCJ38jRH

    J'espère que c'est plus plus claire sur ce fichier.

    Bonne journée 

    Maxime

    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Maxime_Martel Messages postés 22 Statut Membre
     

    Merci beaucoup cela marche nickel et c'est exactement ce que je voulais

    comment vous faite pour que se soit la commande c"rt+a"?

    maxime martel 

    0
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     

    Pour affecter un raccourci-clavier aux macros
    Sous l’onglet Développeur, dans le groupe Code, cliquez sur Macros.
    Dans la zone Nom de la macro, cliquez sur la macro à affecter à une touche de raccourci utilisant la touche Ctrl.
    Cliquez sur Options.
    La boîte de dialogue Options de macro s’affiche.
    Dans la zone Touche de raccourci mettre le raccourci

    Cdlmnt

    0
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       

      Zut, j'ai un pb avec mon fichier, peux tu copier ici le code complet de la macro

      merci

      0
      1. Maxime_Martel Messages postés 22 Statut Membre > ccm81 Messages postés 11033 Statut Membre
         

        Option Explicit

        ' constantes dépendant de la structure des données
        Const F1 = "Feuil1"
        Const coann = "C"
        Const corad = "B"
        Const coidl = "A"

        Const FT = "Trame"
        Const plage_a_copier = "plage"

        Public Sub Ajouter_Annee()
        Dim a As Long, lideb As Long, lifin As Long, n As Long, li As Long
        With Sheets(F1)
          lideb = .Range(coann & Rows.Count).End(xlUp).Row + 1
          a = Application.WorksheetFunction.Max(Columns(coann)) + 1
          MsgBox "Ajouter l'année " & a
          Sheets(FT).Range(plage_a_copier).Copy .Range(corad & lideb)
          lifin = .Range(coann & Rows.Count).End(xlUp).Row
          .Range(coann & lideb & ":" & coann & lifin) = a
          n = Application.WorksheetFunction.Max(Columns(coidl))
          For li = lideb To lifin
            .Range(coidl & li).Value = n + 1 + li - lideb
          Next li
        End With
        End Sub
         

        0
      2. Maxime_Martel Messages postés 22 Statut Membre > Maxime_Martel Messages postés 22 Statut Membre
         

        ah d'accord j'avais jamais affecter un raccourci clavier

        merci bien 

        0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     

    merci pour le code, en fait j'ai du tout reconstruire (au cas où), certainement une incompatibilité avec mon vieil excel 2003

    Si c'est fini, peux tu mettre le sujet à Résolu les "..." en bas à droite de ton premier post

    Bon week end

    0