Microsoft 365 Macro copier avec condition

open-33

XLDnaute Nouveau
Bonjour,


Je sollicite votre aide car je suis débutant sur excel, je vous expose mon problème :


j'ai enregistré une macro "savand" mais je ne sais pas comment intégrer des conditions a mon copier coller


je copie une colonne en feuille "SAISIE ANDERNOS" et je voudrais qu'elle aille se coller sur la feuille "ANDERNOS" avec en condition un numéro de semaine qui est sur la feuille "SAISIE ANDERNOS" a retrouver sur les en tête de colonne de la feuille "ANDERNOS".

Comment est ce que je pourrais intégrer la condition de la semaine qui est en cellule D1 sur la feuille "SAISIE ANDERNOS"
pour qu'il recherche dans quelle colonne copier ces données sur la feuille "ANDERNOS" ?

je vous joins mon fichier pour être plus clair

merci d'avance pour vos réponses
 

Pièces jointes

  • ANALYSE VENTE CASINO - V4.xlsm
    396.7 KB · Affichages: 7
C

Compte Supprimé 979

Guest
Bonjour,

J'ai remarqué que vous avez posté votre message sur un autre forum Excel.

La pratique du cross posting est très mal perçue sur Internet
car les membres qui vont passer du temps sur votre problème risquent de le faire pour rien si vous obtenez une réponse par ailleurs dont ils n'ont pas connaissance.

Merci de choisir un forum pour votre question et de supprimer votre message dans un des forums concernés.

Profitez en pour relire la charte dans laquelle il est expliqué que cette pratique n'est pas admise sur XLD.

Bonne journée
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil


@open-33
Open comme open minded ?
ou open comme ouvrir
un compte sur XLD, ouverture qui invite à se rapprocher de la charte en cliquant sur termes
charte.PNG

Et dans cette fameuse charte on pouvait lire
La Charte¸ comme nombres de ses sœurs à dit:
2.10 - Évitez de poser votre question sur plusieurs forums sur Internet, cette pratique s'appelle « cross posting" et elle peut être mal perçue par les membres répondant aux questions. Si vous avez déjà posté votre question ailleurs, que nous n'avez pas de réponse satisfaisante et que vous voulez la reposter sur XLD, il est possible de supprimer votre discussion sur l'autre forum.
Cela fonctionne aussi dans l'autre sens si vous souhaitez poser votre question ailleurs.
Cela fait un peu de lecture, je te le concède, mais cela t'aurait éviter de devoir lire en plus les messages 2, 4 et 6.

Tu préfères supprimer ton compte (ce que tu ne peux pas faire seul, soit dit en passant) que de lire une tite charte ?
Radical pour un esprit ouvert, non ?

Repasses dans ton fil, tu verras que tu finiras par avoir réponse

En attendant, juste un conseil souvent lu sur les forums
Eviter autant que faire se peut les Select ou autre Activate (Jean-Claude si tu nous écoutes ;) )
Ta macro remaniée (sans Select)
(Je te laisse tester pour voir si le résultat est identique à ta macro initiale)
VB:
Sub savand_bis()
Dim valeurs
Application.ScreenUpdating = False
Sheets("ANDERNOS").Range("X204") = Sheets("SAISIE ANDERNOS").Range("B205").Value
valeurs = Sheets("SAISIE ANDERNOS").Range("R4:R203").Value
Sheets("SAISIE ANDERNOS").Range("B4").Resize(UBound(valeurs, 1), UBound(valeurs, 2)) = valeurs
End Sub
 

open-33

XLDnaute Nouveau
Bonjour Staple,

Merci de prendre le temps de m'aider, en testant ta macro la B205 ce colle bien en X204 par contre on lui précise ou coller, comment peut on lui dire de chercher dans quelle colonne coller en fonction du numéro de semaine qui est en cellule D1 de saisie Andernos ?
Pour ce qui est de range R4:R203 je ne vois aucun résultat et ne comprend pas ce que tu lui demande de faire.
 

Staple1600

XLDnaute Barbatruc
Re

@open-33
[humour Global Warming]
Finalement tu es resté parmi nous.
Tant pis pour la planète.
[/humour Global Warming]

J'ai rédigé trop vite ma simplification de code

Est-ce que c'est mieux ainsi niveau résultat ?
VB:
Sub savand_ter()
Dim valeurs
Application.ScreenUpdating = False
Sheets("ANDERNOS").Range("X204") = Sheets("SAISIE ANDERNOS").Range("B205").Value
valeurs = Sheets("SAISIE ANDERNOS").Range("R4:R203").Value
Sheets("ANDERNOS").Range("B4").Resize(UBound(valeurs, 1), UBound(valeurs, 2)) = valeurs
End Sub

Sinon pour cette histoire de N) de semaine
On pourrait partir sur un truc du genre
VB:
Sub ChercheSem()
Colsem = Sheets("SAISIE ANDERNOS").[D1]
NCol = Application.Match(Colsem, Sheets("ANDERNOS").Rows(1), 0)
MsgBox Sheets("ANDERNOS").Cells(2, NCol).Address
End Sub
Je te laisse creuser à partir de cette piste
 

Staple1600

XLDnaute Barbatruc
Re

@open-33
Ne pas comprendre c'est une chose
Ne pas faire de feedback sur une proposition en est une autre. ;)
La question en suspens est:
• Est-ce que la macro corrigée savand_ter donne le même résultat que la macro initiale ?
La seconde : Quid du test de la macro ChercheSem ?
Qu'affiche le MsgBox ?

je ne comprend pas le langage VBA
Tu utilises une macro enregistrée pourtant, non ?

Si tu souhaites réorganiser ton classeur, je suggère la piste du tableau croisé dynamique
(avec comme entrée un seule feuille qui sert de base de données, ce qui t'évitera d'avoir un classeur avec 13 feuilles et un classeur avec 6691 cellules contenant des formules)
 

Discussions similaires

Réponses
14
Affichages
312

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 107
dernier inscrit
cdel