Remplir un tableau par macro

Elodie195

XLDnaute Occasionnel
Bonjour,

Je sollicite votre aide pour une macro Excel.

J'ai un fichier qui se nomme Tableau1.xlsx

Il est composé de 2 onglets : Données et Brutes.

Dans l'onglet DONNEES, il y a un tableau qui commence en A22 à M29. (j'ai également mis un tableau exemple au dessus pour bien démontrer l'ordre des données).

Je voudrais que les données "brutes" remplissent le tableau de l'onglet "données" par le biais d'une macro Excel.
Dans l'onglet BRUTES, nous avons le numéro (la position) dans la colonne A et la valeur à copier est dans la colonne C.

Je souhaite que cela se fasse par macro et non par formule, car parfois je peux supprimer des données dans l'onglet "BRUTE" et cela supprime la formule dans l'onglet DONNEES. D’où l’intérêt d'une macro qui me permet de copier à coup sûr les bonnes valeurs :)

Merci d'avance de votre aide.

Bonne journée.
 

Pièces jointes

  • Tableau1.xlsx
    15.2 KB · Affichages: 37
  • Tableau1.xlsx
    15.2 KB · Affichages: 38

Modeste

XLDnaute Barbatruc
Re : Remplir un tableau par macro

Bonjour Elodie195,

... on a le droit de dire qu'on n'a pas compris? ... Parce c'est mon cas! :eek: (j'ai eu beau relire, ça ne va pas mieux!?)

Tu dis que la colonne A de la feuille Brute donne une position ... Mais il n'y a que des nombres. Si ce sont des positions, à quoi correspondent ces nombres?
Quel est le rapport entre les explications et ton "tableau exemple pour démontrer l'ordre des données" :confused:
 

Elodie195

XLDnaute Occasionnel
Re : Remplir un tableau par macro

Bonjour Modeste,

Tout d'abord merci de l’intérêt que tu portes à ma demande.

En fait, dans l'onglet BRUTES, nous avons en colonne A des nombres (1,2,3,4...)

Ces nombres correspondent à la place qu'ils doivent être dans le tableau de l'onglet DONNEES.

Par exemple, (Onglet BRUTES; ORDRE 1) correspond à B22 de l'onglet DONNEES.
Il faut donc écrire TEST dans la cellule B22 de l'onglet DONNEES.

Ensuite, (Onglet BRUTES; ORDRE 2) correspondant à B23 de l'onglet DONNEES.
Il faut donc écrire TEST dans la cellule B23 de l'onglet DONNEES.

Le tableau exemple est juste un rappel.

Est-ce plus clair ? :p
 

tototiti2008

XLDnaute Barbatruc
Re : Remplir un tableau par macro

Bonjour Elodie, Modeste, Pierrejean, :)

En retard moi^^

Code:
Sub test()
Dim Ligne As Long, Colonne As Long, Rech
    With Sheets("données")
        For Ligne = 1 To 8
            For Colonne = 1 To 12
                If IsError(Application.VLookup(Ligne + (Colonne - 1) * 8, Sheets("brutes").Range("A1").CurrentRegion, 3, False)) Then
                    Rech = ""
                Else
                    Rech = Application.VLookup(Ligne + (Colonne - 1) * 8, Sheets("brutes").Range("A1").CurrentRegion, 3, False)
                End If
                .Range("B22").Offset(Ligne - 1, Colonne - 1).Value = Rech
            Next Colonne
        Next Ligne
    End With
End Sub
 

Modeste

XLDnaute Barbatruc
Re : Remplir un tableau par macro

Re-bonjour Elodie195,
Salut pierrejean :), tototiti2008 :)

Pour ne pas "demeurerenreste", si c'est bien de découper la colonne C en "tronçons" de 8 cellules à coller côte-à-côte, on pouvait aussi faire:
VB:
Sub copieCommeTuPeux()
Application.ScreenUpdating = False
Sheets("Données").[B22:M29].ClearContents
With Sheets("Brutes")
    col = 2
    For lig = 4 To .Cells(Rows.Count, 3).End(xlUp).Row Step 8
        .Cells(lig, 3).Resize(8, 1).Copy
        Sheets("Données").Cells(22, col).PasteSpecial Paste:=xlValues
        col = col + 1
    Next lig
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
... mais c'est juste pour le motif évoqué: j'ai pô dit que c'était "plus mieux" :D
 

Discussions similaires

Réponses
12
Affichages
284

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz