Chryspy |
Le 30/09/2007 à 21:51 |
|
|
Dans la colonne A J' ai en A1 le nom, en A2 la rue ,en A3 BP, en A4 le code postal , et en A5 la ville. Tout le long de la colonne A la meme chose se repete une centaine de fois.
MOn probleme est de pouvoir mettre en B1 le nom, en C1 la rue; en D1 BP, en E1 le code et en F1 la ville.
Il faut donc que toutes les adresses puissent s'inscrire en B2 C2 D2 E2 F2 ainsi de suite
MERCI DE VOTRE AIDE -- chryspy |
Tigene |
Le 01/10/2007 à 22:35 |
|
Viconaute Modérateur |
Bonjour Chryspy
Je pense qu'il faut faire ça avec une macro en VBA
sélectionner les 5 premières cellules de la colonne A, demander "Copier", sélectionner une autre feuille, (par défaut la cellule sélectionné sera A1) "Collage spécial - transposé", descendre à la ligne inférieure. Revenir sur feuille 1, supprimer les 5 premières cellules (comme ça les 5 cellules suivantes se retrouvent en haut). revenir au début de la macro. en boucle (for next) pour s'arrèter un jour.
Tout ça en langage VBA,
Je ne suis pas assez calé en VBA pour te donner les commandes, essaye en mode apprentissage, d'abord.
@+ -- Ce n'est pas parce qu'on a quelque chose à dire, qu'il faut forcément l'ouvrir |
Marculinos |
Le 02/10/2007 à 18:26 |
|
Viconaute Modérateur |
Hello, Je me penche tout de suite sur la question. J'édite mon message dès que j'ai du nouveau. EDIT de 19H00 : Je t'ai envoyé un mail avec un fichier Excel en pièce jointe. Pas de panique, il ne contient pas de macro malveillante. J'y ai expliqué la procédure, mais je la recopie ici : Mail de Marculinos a écrit :Ci-joint un fichier Excel contenant une macro matérialisée par un bouton "Conversion".
La manipulation consiste à effectuer un copier-coller le la colonne A de l'autre fichier et de la coller dans la colonne A du fichier Conversion.xls
Ensuite, il faut cliquer sur le bouton conversion.
Cette méthode permet de ne pas risquer la perte des informations dans le fichier d'origine. J'attends de tes nouvelles. @+ |
Tigene |
Le 03/10/2007 à 11:12 |
|
Viconaute Modérateur |
salut Marculinos tu me l'envoies à moi aussi, stp, ça va me permettre d'apprendre. merci -- Ce n'est pas parce qu'on a quelque chose à dire, qu'il faut forcément l'ouvrir |
Anthony |
Le 03/10/2007 à 11:20 |
|
Admin |
Plop Marculinos => si tu pouvais mettre la macro sur le forum ça serait top Merci -- |
Marculinos |
Le 03/10/2007 à 16:31 |
|
Viconaute Modérateur |
Ok pas de souci. Bon, peut-être que certains trouveront mon style de programmation un peu "bourrin", mais j'ai appris le Visual basic sur le tas grâce à l'aide de Visual Basic pour Excel et à l'enregistreur de macros qui permet de transcrire en code des actions faites manuellement. Il suffit de créer un bouton à l'aide de la boîte à outils VBA, puis de double-cliquer dessus pour accéder à la fenêtre de code associée. Il ne reste plus qu'à y faire un copier-coller du code ci dessous: 'Selection de la cellule A1
Cells(1, 1).Select
'Détection du nombre total de lignes dans la colonne 1
a = 1
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
a = a + 1
Loop
a = a - 1
a = a / 5
'Selection de la cellule A1
Cells(1, 1).Select
For b = 1 To a
Cells(b, 1).Select
Selection.Cut
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
ActiveCell.Offset(1, -1).Select
Selection.Cut
ActiveCell.Offset(-1, 2).Select
ActiveSheet.Paste
ActiveCell.Offset(2, -2).Select
Selection.Cut
ActiveCell.Offset(-2, 3).Select
ActiveSheet.Paste
ActiveCell.Offset(3, -3).Select
Selection.Cut
ActiveCell.Offset(-3, 4).Select
ActiveSheet.Paste
ActiveCell.Offset(4, -4).Select
Selection.Cut
ActiveCell.Offset(-4, 5).Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
ActiveCell.EntireRow.Delete
ActiveCell.EntireRow.Delete
ActiveCell.EntireRow.Delete
ActiveCell.EntireRow.Delete
a = a - 4
Next A propos, Chryspy, je viens de m'apercevoir que j'ai oublié de retirer deux lignes contenant le texte "Msgbox a" dans la macro du fichier que je t'ai envoyé. Cela n'altère pas le fonctionnement du programme mais le ponctue d'apparitions de boîtes de dialogue inutiles, puisqu'elles m'ont seulement servi à vérifier l'état de ma variable "a" pendant le déroulement du programme. @+ |
Marculinos |
Le 11/10/2007 à 16:33 |
|
Viconaute Modérateur |
Chryspy > Cela t'a servi ou me suis-je décarcassé pour des prunes?
@+ |
Tigene |
Le 11/10/2007 à 22:11 |
|
Viconaute Modérateur |
j'en ai bien peur, mais pour moi, j'ai appris qq chose.
merci Marculinos @+ -- Ce n'est pas parce qu'on a quelque chose à dire, qu'il faut forcément l'ouvrir |
Marculinos |
Le 11/10/2007 à 22:34 |
|
Viconaute Modérateur |
Je suis content que cela t'ai au moins servi à toi. Au moins, je n'ai pas affaire à un nain gras. Bonne nuit à toi, cher collègue. @+ |
Wilder |
Le 13/10/2007 à 17:57 |
|
Viconaute Modérateur |
Salut, Marculinos, tu de débrouille très bien en VBA! Super le script! --
|