je suis professeur de sports et j'aimerais transformer un tableau en base de données
j'aimerais transposer de façon rapide les résultats en lignes en colonnes
Voici une macro à placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B2:D4]) Is Nothing Then Exit Sub
Set Target = ActiveCell
Application.ScreenUpdating = False
[B2:D2].Copy
[C7].PasteSpecial Paste:=xlPasteValues, Transpose:=True
[B3:D3].Copy
[C10].PasteSpecial Paste:=xlPasteValues, Transpose:=True
[B4:D4].Copy
[C13].PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Target.Select
End Sub
La macro se déclanche quand on entre ou efface une valeur dans le 1er tableau.
On ne pense pas toujours aux solutions les plus simples...
Nommer Tab la plage B2: D4 (menu Insertion-Nom-Définir), et entrer la macro suivante dans le code de la feuille :
Code:
Private Sub Worksheet_Change(ByVal Cel As Range)
If Intersect(Cel, Range("Tab")) Is Nothing Then Exit Sub
i = 0
For Each Cel In Range("Tab")
[C7].Offset(i) = Cel
i = i + 1
Next
End Sub
L'intérêt de cette solution est qu'elle est générale, elle fonctionne quelles que soient les dimensions du 1er tableau. La seule chose qu'il faut adapter dans la macro, c'est la 1ère cellule du 2ème tableau : [C7]
Sélectionner C7, clic droit : Copier, sélectionner la plage C7:C15, clic droit : Collage spécial-Formules (ne pas tirer la formule vers le bas à cause des formats couleurs).
Ici aussi la formule est générale : il suffit d'indiquer la 1ère cellule du 2ème tableau : C$7
Edition 1 : autre solution pour entrer la même formule dans toutes les cellules de la plage C7:C15. Sélectionner la plage, puis entrer la formule dans la barre de formule. Valider par Ctrl+Entrée.
Edition 2 : pour ne pas afficher les valeurs 0, mettre les cellules de la plage C7:C15 au format Nombre Personnalisé 0;;
bonjour
un tout grand merci pour votre collaboration Job et Catrice
les solutions me conviennent
toutefois, je bloque sur la 2° possibilité de Job
probablement un problème avec C1 que je me domine pas
donc pour pouvoir travailler sur un plus grand tableau 1, j'ai adapté le code de la 1° solution et tout va bien