Aller au contenu

[Excel 2007]


Ben Kenobi

Messages recommandés

Bonjour tous,

J'ai un souci au boulot avec Excel, mes recherches ne donnent rien et j'avance pas :(

Donc le cas est le suivant :

Dans une feuille de calcul j'ai une seule ligne composée avec dans chaque colonne les informations suivantes : NOM1 NOM2 PRENOM

L'opération se répète ainsi sur +8000 colonnes. (ex : NOM1 NOM2 PRENOM NOM1 NOM2 PRENOM NOM1 NOM2 PRENOM ...)

Mon objectif est de trouver un moyen de lui dire de me faire un retour à la ligne toutes les 3 colonnes pour obtenir un tableau de cette forme :

NOM1 NOM2 PRENOM

NOM1 NOM2 PRENOM

NOM1 NOM2 PRENOM

...

Avez-vous une idée... j'ai essayé la méthode de conversion mais elle ne peut s'appliquer ici a priori....

Merci d'avance.

Lien à poster

Là, comme ça, j'ai testé rapidement ceci :


Public Sub Permutation()

Dim iCol As Integer
Dim iRow As Integer

iRow = 2

For i = 4 To ActiveSheet.Columns.Count Step 3
	Range(Cells(1, i), Cells(1, i + 2)).Select
	Application.CutCopyMode = False
	Selection.Cut
	Range(Cells(iRow, 1), Cells(iRow, 1)).Select
	ActiveSheet.Paste

	iRow = iRow + 1

Next i

End Sub

Testé sous Excel 2003 avec un petit échantillon, cela fonctionne.

Bon cela se termine en erreur parce que mon algo ne gère pas le fait que l'on puisse dépasser le nombre de colonnes maxi.

Mais cela peut se corriger.

EDIT : A tester sur une copie du fichier avant toute chose, hein? :-)

Lien à poster

Def < dans message fonctionnalité Joindre des fichiers : je l'avais déjà utilisée avec succès pour uploader des images. Mais là : impossible d'uploader un fichier xlsx (tout petit en plus : 9,10Ko) alors qu'il me reste 238,76Ko sur mon quota de 500Ko.

edit :

Pas de message d'erreur visible, mais peut être que cela vient de la politique réseau de mon client qui se durcie de plus en plus |-(

Lien à poster

DEF > TU es un Roi quand même, ta formule marche du tonnerre !!

Mais maintenant j'ai besoin de la même pour la même chose sur 2 colonnes

NOM1 NOM2 NOM1 NOM2 NOM1 NOM2 ...

pour faire

NOM1 NOM2

NOM1 NOM2

NOM1 NOM2

...

et je suis pas doué en Visual basic...

Sinon jefelbo, ta formule m'a l'air très bien, mais finalement la solution de DEF me convient bien...

Donc DEF si tu peux me la refaire tu auras ma reconnaissance éternelle pour toujours :D

Lien à poster

Ben Kenobi : pas de problème, je préfère aussi la solution de DEF, c’était juste pour donner une solution qui n'oblige pas à faire une macro.

Autrement, modifier la solution de DEF ne doit pas être trop dur à adapter :

For i = 3 To ActiveSheet.Columns.Count Step 2
			Range(Cells(1, i), Cells(1, i + 1)).Select

mais à faire valider par l'auteur ou à tester

:)]

edit : ma solution "excelienne" pour 2 colonnes

formule dans les 2 premières colonnes de la feuille de destination

=INDIRECT(ADRESSE(1;(LIGNES(1:$1)-1)*2+ENT(COLONNES($A:-1);;;"data"))&""

Lien à poster

Ben à priori, il faut juste changer

For i = 4 To ActiveSheet.Columns.Count Step 3
Range(Cells(1, i), Cells(1, i + 2)).Select

en

For i = 3 To ActiveSheet.Columns.Count Step 2
Range(Cells(1, i), Cells(1, i + 1)).Select

Mais la solution de jefelbo est plus "excelienne", d'autant quelle ne touche pas aux données d'origine.

Lien à poster

Ben > Je viens de vérifier et si, cela fonctionne bien.

Il y a 3 modifs à faire :

For i = 3 To ActiveSheet.Columns.Count Step 2
Range(Cells(1, i), Cells(1, i + 1)).Select

EDIT : Hahahaha, la balise code qui fout tout en l'air.

EDIT2 : jefelbo > par rapport aux pièces jointes, je pense qu'il doit y avoir une restriction sur le type de fichier joint. il faut que je regarde dans la configuration du forum.

Lien à poster
×
×
  • Créer...