Des colonnes qui ont la goujotte

  • Initiateur de la discussion Initiateur de la discussion anthony
  • 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 !

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

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@
 
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

Dernière modification par un modérateur:
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
 
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
 
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
 
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
 
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
 
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
 
- 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

  • Question Question
Microsoft 365 Power Query
Réponses
8
Affichages
112
  • Question Question
Microsoft 365 Power Query
Réponses
2
Affichages
67
Réponses
3
Affichages
63
Réponses
2
Affichages
196
Retour