Des colonnes qui ont la goujotte

A

anthony

Guest
Bonjour à toutes et à tous.
Voici mon pb:
Je voudrais Excel me recherche des colonnes qui changent toujours de place pour les copiers dans un autre fichier excel! Dans le fichier joint il y a plus d'info.
Merci d'avance
 

Pièces jointes

  • Classeur1.xls
    15 KB · Affichages: 56
  • Classeur1.xls
    15 KB · Affichages: 63
  • Classeur1.xls
    15 KB · Affichages: 57
@

@Christophe@

Guest
Bonjour Anthony

Voici le style de macro qu'il te faut, peux importe l'emplacement des prix et qte sur ta feuille, tu dois juste tenir compte d'une choses, pour que excel retrouve prix et qte, c'est cellule doivent être nommé.


Sub copier()
Range("prix").Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\Christophe\Mes documents\divers macro.xls"
Range("B1").Select
ActiveSheet.Paste
Windows("Classeur1.xls").Activate
Range("qte").Copy
Windows("divers macro.xls").Activate
Range("C1").Select
ActiveSheet.Paste
Windows("Classeur1.xls").Activate
Application.CutCopyMode = False
End Sub


Essaye et dis nous quoi

@Christophe@
 
@

@+Thierry

Guest
Salut Anthony et @Christophe@

Pour @Xtof@, vu qu'Anthony explique que son classeur source est fabriqué par SAP, çà m'étonnerait qu'il lui nomme les plages !!!

Bon je te propose encore une autre solution dans la démo ci-jointe. Tu devras l'adapter sur du MultiClasseur, ou simplement faire une copie de la Feuil2....

Bon Samedi
@+Thierry
 

Pièces jointes

  • CopyColonnesGoujotte.zip
    9.7 KB · Affichages: 23
Dernière modification par un modérateur:
@

@+Thierry

Guest
Hummm tu parles à @Christophe@ là Anthony

Il n'y a pas de "Range("prix").copy" dans mon mon code que voici :

"Option Explicit
Sub Anthony()
Dim cell As Range
Dim MaPlage As Range
Dim VarPrix As String
Dim VarQte As String
Dim SourceA As Byte
Dim SourceB As Byte

VarPrix = "prix unit"
VarQte = "qte"

Set MaPlage = Sheets(1).Range("A1:IV1")

For Each cell In MaPlage
If cell.Value = VarPrix Then
SourceA = cell.Column
End If
If cell.Value = VarQte Then
SourceB = cell.Column
End If
Next
Feuil1.Columns(SourceA).Copy Feuil2.Columns(1)
Feuil1.Columns(SourceB).Copy Feuil2.Columns(2)
End Sub


Mais l'erreur vient du fait que @Xtof@ travaille avec des plages nommées et tu n'en a pas. Essaie ma démo, elle n'a pas besoin de plage nommée.

Bon Courage
@+Thierry
 
@

@Christophe@

Guest
Bonjour Thierry

Ben voila, quelque chose que je ne connaissais pas, comme quoi on en apprends tous les jours, rire

effectivement, j'y avais pensé que sont SAP ne nommerai pas les cellule, mais bon, on ne sais jamais.

Mais comme Thierry sens mêle, j'ai plu qu'a aller me coucher, rire

En plus j'ai la tête ailleur, je suis sur VBA mais sur Word, avec des Userform, rrrrrrrr, j'essaye.


Bonne journée a vous tous
 
V

Valérie

Guest
Salut le forum,

Merci @Thierry de rapeler mes efforts et je maintiens qu'avec une recherche (sans BLOUCLE QUOI!!) tu peux faire la même chose Genre

Sub Anthony()

Dim SourceA As Byte
Dim SourceB As Byte

SourceA = Rows("1:1").Find(What:="prix unit", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Column

SourceB = Rows("1:1").Find(What:="qte", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Column

Feuil1.Columns(SourceA).Copy Feuil2.Columns(1)
Feuil1.Columns(SourceB).Copy Feuil2.Columns(2)

End Sub

Bon c'était pour continuer le fil que j'avais commencé C tout

Bonne nuit
Valérie
 
@

@+Thierry

Guest
Bonsoir Valérie

Oui je sais que tu le réalisais sans boucle, mais je n'ai pas voulu te piquer ton idée... J'ai juste fais la remarque à Anthony que tu lui avis déjà donné une solution (Mister Anthony qui voit des Bugs Partout !! lol)

Ta Soluce est très bien, mais j'ai l'impression qu'Anthony est débutant et qu'il a besoin de pouvoir copier/coller le code complet et que çà marche..... Sinon il "Bug" !! lol

Bonne Nuit à Toi aussi
@+Thierry
 
A

anthony

Guest
bonsoir,
Je voulais avoir encore un coup de main de ta part.
La solution que tu m'as proposé vas très bien mais étant débutant sur excel (macro) je n'arrive pas à faire une chose.
Je voudrais que les données copiées viennent d'un autre fichier excel.
Peux-tu m'aider?
Merci d'avance
Anthony
 
@

@+Thierry

Guest
Bonsoir Anthony

Je ne sais pas à qui tu parles, mais @Christophe t'a expliqué plus haut comment faire sur un autre classeur (même pas encore ouvert), il suffit d'adapter entre les propositions de Valérie ou de moi même.

Disons que je suis fatiqué ce soir, mais il suffit de faire un truc dans ce style si tu as les deux classeurs déjà ouverts...

Workbooks("ClasseurSource.xls").Sheets("Feuil1).Columns(SourceA).Copy Workbooks("ClasseurCible).Sheets("Feuil1).Columns(1)

Bonne Nuit
@+Thierry
 

Discussions similaires

Réponses
3
Affichages
307
Réponses
9
Affichages
471

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 182
dernier inscrit
savio