VBA pour rangement automatisé de données brutes

Bonjour, je cherche une solution à un problème sur lequel je tourne autour depuis un moment car j'ai très peu d'expérience en VBA.

Pour faire simple j'ai une suite de donnée sur ma feuille 1 ( toute dans une même colonne ) et un tableau avec plusieurs colonnes nommées sur ma feuille 2. Je cherche à, avec un seul bouton, pouvoir ranger ces données brute dans mon tableau. Quelque chose comme : A1 Feuille 1 est déplacé sur B3 Feuille 2. Cela ne me semble pas sorcier mais je n'ai aucune idée de comment faire.

Merci de votre aide !

Bonjour Marc972,

Ton problème est plutot compliqué à résoudre sans un fichier d'exemple.

Pourrais-tu nous envoyer le fichier (original ou modifié) pour que l'on ai un visuel de se que tu as et ce que tu veux?

Cela serait beaucoup plus simple de t'aider avec !!

A+

Voici mon document je cherche à transférer les informations de la colonne de feuille 1 vers la colonne de tableau correspondante sur la feuille 2 à l'aide d'un seul bouton. Enfin pour mes futurs données je voudrais que dans de nouvelles infos soient transférer dans le tableau elle s'affiche en dessous ( et non pas sur la cellule du haut sinon je ne ferais que supprimer mes anciennes données ). J'espère avoit été clair dans mes explications je n'ai pas les termes précis.

Re,

Tout d'abord désolé de ne pas avoir le niveau pour faire ce que tu as demandé parfaitement.

Sur le code suivant :

Sub MacroBouton()
    Dim LigneColonneA As Integer
    Dim compteurLigneTableau As Integer
    Dim compteurColonneTableau As Integer

    compteurLigneTableau = 3
    LigneColonneA = 1

    For compteurColonneTableau = 1 To 16 Step 1 'numéro des colonnes de A à P
        Worksheets("Feuil1").Cells(LigneColonneA, 1).Copy _
        Destination:=Worksheets("Tableau").Cells(compteurLigneTableau, compteurColonneTableau) 'faire un copié/collé des valeurs de la colonne A
        LigneColonneA = LigneColonneA + 1
    Next
End Sub

Je peux seulement apporter les valeurs de la colonne A vers une des lignes du tableau. Par contre pour réutiliser la macro il faut changer la valeur du

compteurLigneTableau = 3

et mettre le numéro de la prochaine ligne vide à la place du 3.

Par contre les valeurs de ta colonne A sont complétement dans le désordre et je ne sais pas quoi va ou!!

Du coup je pense qu'il faudrait faire une colonne d'explication en B par exemple (à quoi correspond la valeur de la cellule)

Le principe de ce code est de prendre les 16 premières valeurs de la colonne A et les retransmettre dans le tableau dans le même ordre.

Encore désolé et bon courage !!!

C'est déja bien plus que j'aurai pu faire ! Grand merci à toi !

Juste une dernière question, si à la place de toute la colonne A je chercherais seulement à sélectionner quelques cellules de cette colonne, que devrais-je changer au code ?

Juste une dernière question, si à la place de toute la colonne A je chercherais seulement à sélectionner quelques cellules de cette colonne, que devrais-je changer au code ?

oui mais du coup on perdrait cette notion de boucle (du moins avec mes capacités...). Ce qui veut dire tu devra écrire ça :

        Worksheets("Feuil1").Cells(ligne de la colonne A que tu veux, 1).Copy _
        Destination:=Worksheets("Tableau").Cells(ligne du tableau, colonne du tableau) 'faire un copié/collé des valeurs de la colonne A

pour chaque cellule que tu veux récupérer.

A moins qu'il y ai un paterne sur la récupération des cellules. c'est à dire que tu va récupérer une cellule toutes les X cellules de la colonne A dans ce cas tu dois juste modifier le dernier chiffre de la boucle :

For compteurColonneTableau = 1 To 16 Step 1

Voila ce que je peut te dire

Bonne continuation !!

Bonjour Marc972, le fil

Avant de répondre à ta requête, plusieurs informations et questions...

  1. Dans l'onglet [Tableau] tu utilises une structure "Tableau Automatique"
    1. Tu devrais utiliser les identifiants de colonnes (ceux de la ligne 2) dans ce tableau en lieu et place des mentions "Colonne1, Colonne2... ColonneN".
    2. Cela apporterait plus de lisibilité et éviterait d'être obligé de "sauter" cette ligne 2 inutile pour la réalisation de ton code
  2. Dans l'onglet [Feuil1]
    1. Les données semblent assez "déstructurées", tout au moins, difficile à intégrer "directement" dans l'onglet [Tableau]
    2. Est-il possible soit ?
      1. De mettre les données dans l'ordre des colonnes de l'onglet [Tableau]
      2. De rajouter une colonne dans l'onglet [Feuil1] devant les données pour pouvoir faire référence à celle de l'onglet [Tableau]

En considération de cela,

Le nouveau "Tableau Automatique"

capture 20220511 001

Le nouvel onglet [Feuil1] utilisant par exemple la proposition 2.2.2

capture 20220511 002

sachant qu'ainsi les "libellés" en colonne 1 peuvent très bien se trouver dans un ordre différent !

Pour ce qui est de

Juste une dernière question, si à la place de toute la colonne A je chercherais seulement à sélectionner quelques cellules de cette colonne, que devrais-je changer au code ?

Il est alors possible de "cocher" par exemple en colonne 3, uniquement les données à transférer !

Rechercher des sujets similaires à "vba rangement automatise donnees brutes"