Page précédente | Page suivante | Page : 1 2 3 4

une formule sur excel
Hors ligne Chryspy Le 30/09/2007 à 21:51 Profil de Chryspy Configuration de Chryspy
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
Hors ligne Tigene Le 01/10/2007 à 22:35 Profil de Tigene Configuration de Tigene
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
Hors ligne Marculinos Le 02/10/2007 à 18:26 Profil de Marculinos Configuration de Marculinos
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.

@+
--
The Matrix has you...

                                                   Vous êtes ici  ^
Hors ligne Tigene Le 03/10/2007 à 11:12 Profil de Tigene Configuration de Tigene
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
Hors ligne Anthony Le 03/10/2007 à 11:20 Profil de Anthony Configuration de Anthony
Fou du volant
Plop

Marculinos => si tu pouvais mettre la macro sur le forum ça serait top

Merci
--
Hors ligne Marculinos Le 03/10/2007 à 16:31 Profil de Marculinos Configuration de Marculinos
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.



@+
--
The Matrix has you...

                                                   Vous êtes ici  ^
Hors ligne Marculinos Le 11/10/2007 à 16:33 Profil de Marculinos Configuration de Marculinos
Viconaute Modérateur
Chryspy > Cela t'a servi ou me suis-je décarcassé pour des prunes?

@+
--
The Matrix has you...

                                                   Vous êtes ici  ^
Hors ligne Tigene Le 11/10/2007 à 22:11 Profil de Tigene Configuration de Tigene
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
Hors ligne Marculinos Le 11/10/2007 à 22:34 Profil de Marculinos Configuration de Marculinos
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.

@+
--
The Matrix has you...

                                                   Vous êtes ici  ^
Hors ligne Wilder Le 13/10/2007 à 17:57 Profil de Wilder Configuration de Wilder
Viconaute Modérateur
Salut,

Marculinos, tu de débrouille très bien en VBA!

Super le script!  
--
Trop d'intelligence fait partir la sagesse. D'où l'importance de répondre au autres avec grand respect!!!!!!!!!
-----------

Page précédente | Page suivante | Page : 1 2 3 4

Aide informatique | Communauté d'entraide informatique | Aide informatique | Forum d'assistance informatique | Forum-Vista | Formation informatique | Forum Informatique | Devenir partenaire