Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

  • Initiateur de la discussion Initiateur de la discussion p'tite véro
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

p'tite véro

Guest
Bonjour à tous,
Tout d'abord, je précise que je suis nulle en macro mais beaucoup disent que c'est formidable et que ça peut presque tout faire...
Je dois mettre en forme des données sur excel (voir un extrait dans fichier joint - première ligne ok), et je crois que si je peux traduire en vba (faire une macro) le développement/raisonnement suivant, peut me faire gagner un temps précieux et protéger ma vue !
1/écrire en gras chaque cellule qui commence par A(il me suffira de changer la lettre si nécessaire)
2/transposer la cellule qui suit la cellule contenant le texte en gras dans la colonne "adresse 1" puis adresse 2 de la même ligne sauf si la cellule commence par "91" ou"téléphone" ou "fax" ou "http"
3/transposer la cellule qui commence par "téléphone" dans la colonne téléphone (idem "fax", idem mail pour http).
POSSIBLE OU PAS POSSIBLE ?????????
D'avance je vous remercie pour vos réponses et remarques.
 

Pièces jointes

Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Oui, c'est encore bien moi...
Je ne cesse de réfléchir et c'est ce que j'ai trouvé de mieux (enfin si on peut dire).
Qu'en pensez-vous ???
 
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Néanmoins

Pour cela voila une macro
1/écrire en gras chaque cellule qui commence par A(il me suffira de changer la lettre si nécessaire)
Code:
Sub gras()
For Each cell In Range(Cells(1, "A"), Cells(65536, "A").End(xlUp))
If Left(cell, 1) = "A" Then
cell.Font.Bold = True
End If
Next
End Sub
 
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Merci beaucoup, c'est déjà formidable !
Vous pensez qu'il est impossible de transposer les données tél, fax, en faisant une boucle à partir de chaque nvelle cellule en caractère gras ?
J'ai envie d'y croire... car le contraire serait redoutable !!!
 
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Ensuite ca devient difficile avec cette méthode
Code:
Sub gras_transpose()
Application.ScreenUpdating = False
For Each cell In Range(Cells(1, "A"), Cells(65536, "A").End(xlUp))
If Left(cell, 1) = "A" Then
cell.Font.Bold = True
End If
Next

For Each cell In Range(Cells(1, "A"), Cells(65536, "A").End(xlUp))
If cell.Font.Bold And cell.Offset(3, 0) Like "France" Then
Range(cell.Offset(1, 0), cell.Offset(3, 0)).Copy
cell.Offset(0, 1).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
        , Transpose:=True
        End If
Next

For Each cell In Range(Cells(1, "A"), Cells(65536, "A").End(xlUp))
If cell.Font.Bold And cell.Offset(5, 0) Like "Fax*" Then
Range(cell.Offset(1, 0), cell.Offset(5, 0)).Copy
cell.Offset(0, 1).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
        , Transpose:=True
        End If
Next
Application.ScreenUpdating = True
End Sub
 
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

J'ai testé votre dernière formule, c'est proche du rêve...
Mais je ne comprends pas pourquoi çà ne fonctionne pas sur toute les données ?
Pensez-vous qu'il vaut mieux que je repense mon "raisonnement" ?
Est-il plus simple de faire une macro pour chaque transposition (ex: transpose ville, transpose téléphone, transpose fax etc...) ?
Merci pour vos suggestions éclairées.
 
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Je vous remercie beaucoup pour votre solidarité et votre aide si précieuse!!!!
Encore une "petite" prise de tête.... comment supprimer les données entre chaque raison sociale après avoir transposé ?
Un énorme MERCI et bon appétit !
 
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Tout simplement le bonheur,
Encore mille mercis
Je vous souhaite une très Bonne soirée !
PS : je testerai demain avec d'autres fichiers en remplaçant la lettre "A"
 
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Bonsoir


Une version plus aboutie (nécéssitant une préparation du fichier
préalable)

ex: si le fichier a cette structure (données en colonnes- ici colonne A)
NOM
ADRESSE
CP_VILLE
TEL
FAX
EMAIL
SITE WEB

A l'éxécution de la macro, la valeur de n doit prendre 7

(Mais il faut que toutes les données de la colonne respectent cette
structure, sinon gare au souk 😉)

Code:
Sub Transpose_Vero()
Dim rng As Range
Dim I As Long
Dim nb_lig As Integer
nb_lig = _
InputBox(Chr(13) & "Changement tous les n lignes" & Chr(13) _
& "Quelle est la valeur de n, svp ?")
Application.ScreenUpdating = False
Set rng = Range("A1")
While rng.Value <> ""
    I = I + 1
    rng.Resize(nb_lig).Copy
    Range("B" & I).PasteSpecial Transpose:=True
    Set rng = rng.Offset(nb_lig)
Wend
Range("B1").EntireColumn.Resize(, nb_lig).AutoFit
Application.CutCopyMode = False
Application.ScreenUpdating = True

Si le fichier avait cette structure
NOM
ADRESSE
CP_VILLE
TEL
alors n=4


Bonne fin de week end à tous


J-M
 
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Bonjour Bonjour,

Je viens de découvrir la nouvelle formule !!! C'est épatant, la seule gène c'est qu'il est extrêmement fastidieux de "formaliser" toutes les données au même format.
Je vais quand même essayer en mettant en gras les noms de société (celà me fera un repère visuel) & je vous tiens informé...
Quand à la formule précédente, j'essaie de changer "A" en "B" : et bien devinez quoi ? çà ne fonctionne plus !
J'enrage...
Une p'tite astuce svp Mr Staple 1600 alias Barbatruc
 

Pièces jointes

Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Bonjour



C'est normal


Explications:

Application.ScreenUpdating = False
For Each cell In Range(Cells(1, "B"), Cells(65536, "B").End(xlUp))
If Left(cell, 1) = "B" And Not cell Like "Bvd*" Then
cell.Font.Bold = True
End If
Next
For Each cell In Range(Cells(1, "B"), Cells(65536, "B").End(xlUp))
Cette ligne fait référence à la colonne B, or les données sont en colonne A

Le seul changement a faire était celui la:
If Left(cell, 1) = "B" And Not cell Like "Bvd*" Then

C'est juste ici qu'il faut le A en B

Donc il faut remplacer le B par le A dans le reste du code
 
Dernière édition:
Re : MACRO POSSIBLE OU PAS POSSIBLE ?!Merci

Je n'y connais pas grand chose... pour ne pas dire rien, mais je fais de gros efforts...
Encore merci de votre sympathie.
Je m'empresse d'essayer votre dernière formulation (par nombre de ligne)...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
378
D
  • Question Question
Réponses
5
Affichages
249
Didierpasdoué
D
Réponses
12
Affichages
452
Réponses
4
Affichages
586
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…