Transformation tableau par macro

nak

XLDnaute Occasionnel
Bonjour

Je voudrais modifier une série de classeurs tous identiques.
J'enregistre donc une macro avec l'enregistreur, celle-ci fonction bien. Je supprime quelques colonnes, j'inverse une colonne...

Sub tranformation()
'
' tranformation Macro
'
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Columns("E:E").Select
Selection.Delete Shift:=xlToLeft
Columns("D:D").Select
Selection.Cut
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Range("A1").Select
End Sub

Maintenant je voudrais ajouter la suppression des lignes qui ont une valeur égale à zéro dans la colonne F.
Je voudrais aussi que cette transformation ne se réalise pas sur ce classeur mais dans un nouveau classeur.

Pouvais vous m'aider SVP?

Merci
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Transformation tableau par macro

Bonsoir,

essaie avec ce code :

Pour info, avec les suppressions de colonne, ce n'est plus la colonne F, mais D

Code:
Sub tranformation()
'
' tranformation Macro
'
Columns("A:C").Delete
Columns("E:E").Delete
Columns("D").Cut
Columns("C:C").Insert

For i = [D65000].End(xlUp).Row To 2 Step -1
    If Cells(i, 6).Value = 0 Then Cells(i, 6).EntireRow.Delete
Next i
End Sub

Pour ce qui est de l'autre classeur, donne un peu plus d'info (le nom, l'onglet....)
 

nak

XLDnaute Occasionnel
Re : Transformation tableau par macro

Merci cela fonctionne bien

Sub tranformation()
'
' tranformation Macro
'

'suppression des colonnes et inversement C et D
Columns("A:A").Delete
Columns("B:B").Delete
Columns("C:C").Delete
Columns("E:E").Delete
Columns("D:D").Cut
Columns("C:C").Insert
Range("A1").Select

'suppression des lignes avec zéro ou rien en colonne D

For i = [D65000].End(xlUp).Row To 2 Step -1
If Cells(i, 4).Value = 0 Then Cells(i, 4).EntireRow.Delete
Next i

End Sub

Maintenant je vais chercher pour que le résultat s'affiche dans un nouveau classeur

@+
Nak
 
Dernière édition:

nak

XLDnaute Occasionnel
Re : Transformation tableau par macro

Bon je viens de trouver la création d'un nouveau classeur.

Sub tranformation()
'
' tranformation Macro
'
'Création nouveau classeur et duplication
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Workbooks.Add
ActiveSheet.Paste

'suppression des colonnes et inversement C et D
Columns("A:A").Delete
Columns("B:B").Delete
Columns("C:C").Delete
Columns("E:E").Delete
Columns("D:D").Cut
Columns("C:C").Insert
Range("A1").Select

'suppression des lignes avec zéro ou rien en colonne D

For i = [D65000].End(xlUp).Row To 2 Step -1
If Cells(i, 4).Value = 0 Then Cells(i, 4).EntireRow.Delete
Next i

End Sub

Maintenant il faut que la commande soit appelé par un userform.

Je voudrais avoir un fichier Excel avec un userform au démarrage.
L'userform me demande d'aller chercher mon fichier *.xls à transformer dans l'arboressence de mon pc.
Ensuite je sélectionne un des modules de transformation (car il y en aura plusieurs)
Puis je valide pas OK.

Pensez vous que cela soit possible ?

Merci
 

Cousinhub

XLDnaute Barbatruc
Re : Transformation tableau par macro

Re-,

Ps : Nak, t'as vu que dans mon message, il n'y avait pas de smileys dans la ligne Range(....).Cut

Pour poster du code, utilises les balises #, juste à côté de celle que tu as utilisée (Citation)
;)
 

nak

XLDnaute Occasionnel
Re : Transformation tableau par macro

Merci bhbh je note l'astuce ;)

J'en reviens a mon projet
J'ai réaliser un userform mais je ne sais pas comment faire le reste :D

Dans le premier champ je veux pourvoir sélectionner mon fichier excel à transformer. La je ne sais même pas si c'est réalisable ?

Dans le deuxième champs je veux sélectionner mon client (client 1 ou client 2)

Après lors de la validation je veux que soit appliquer le module 1 (pour le client 1) à mon fichier sélectionner. idem avec le client 2... module 2.


Quelqu'un peut-il m'aider SVP ?

Merci
Nak
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Transformation tableau par macro

Re-,

ta question n'ayant plus rien à voir avec l'initiale, peut-être qu'en ouvrant un nouveau fil, avec le fichier (que tu auras supprimé de ce fil), et avec un titre explicite, t'amènera de nouvelles réponses, mais aussi des liens vers des fils ayant déjà traité de ce problème
 

Discussions similaires

Réponses
2
Affichages
973

Statistiques des forums

Discussions
312 927
Messages
2 093 687
Membres
105 782
dernier inscrit
obelix76