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

Litiou

XLDnaute Nouveau
Bonjour,

Voulant comprendre et avancez, je voudrais savoir si quelqu'un peut m'expliquer en Français la macros du dessous



Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
Col = Target.Column
If Col = 2 Or Col = 3 Or Col = 5 Then
Me.Range("B:C,E:E").Copy Destination:=Sheets("Feuil2").Range("A1")
Application.CutCopyMode = False
End If
End Sub



Encore merci à tous.
Bonne journée.
 
Bonjour,
Ceci peut-être....
C'est une macro évènementielle, elle est lancée à chaque changement de la feuille dans laquelle elle est placée.


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
Col = Target.Column ' attribue à "Col" le numero de la colonne ou un changement a eu lieu
If Col = 2 Or Col = 3 Or Col = 5 Then
'si la colonne(Col)ou a lieu le changement est B ou C ou E
'Alors copie la colonne B,C,E de la feuille active vers la Feuil2 cellule de debut A1
Me.Range("B:C,E:E").Copy Destination:=Sheets("Feuil2").Range("A1")
'Enlève les pointillés de la sélection
Application.CutCopyMode = False
End If

Bon courage
 
Bonjour,
Ceci peut-être....

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
Col = Target.Column ' attribue à "Col" le numero de la colonne ou un changement a eu lieu
If Col = 2 Or Col = 3 Or Col = 5 Then
'si la colonne(Col)ou a lieu le changement est B ou C ou E
'Alors copie la colonne B,C,E de la feuille active vers la Feuil2 cellule de debut A1
Me.Range("B:C,E:E").Copy Destination:=Sheets("Feuil2").Range("A1")
'Enlève les pointillés de la sélection
Application.CutCopyMode = False
End If

Bon courage


Merci beaucoup pour votre réponse.

Maintenant si je voulais faire la meme chose avec les colonnes A, B, C, E, F, H, I, J, O, P, Q.

Pour m'expliquer j'ai trouvé ce code qui me va super bien sur ce site, mais maintenant je voudrais l'adapter sur plein de fichier perso, donc pouvoir choisir les colonnes a chaque fois.

Encore merci
 
Bonjour,
Ceci peut-être....

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
Col = Target.Column ' attribue à "Col" le numero de la colonne ou un changement a eu lieu
If Col = 2 Or Col = 3 Or Col = 5 Then
'si la colonne(Col)ou a lieu le changement est B ou C ou E
'Alors copie la colonne B,C,E de la feuille active vers la Feuil2 cellule de debut A1
Me.Range("B:C,E:E").Copy Destination:=Sheets("Feuil2").Range("A1")
'Enlève les pointillés de la sélection
Application.CutCopyMode = False
End If

Bon courage


Merci beaucoup pour votre réponse.

Maintenant si je voulais faire la meme chose avec les colonnes A, B, C, E, F, H, I, J, O, P, Q.

Pour m'expliquer j'ai trouvé ce code qui me va super bien sur ce site, mais maintenant je voudrais l'adapter sur plein de fichier perso, donc pouvoir choisir les colonnes a chaque fois.

Encore merci
 
RE..
J'ai cru comprendre que c'était pour ../comprendre et avancez/..
Les explications ne sont pas claire ?
En Premier
Que faudra t-il mettre ici
If Col = 2 Or Col = 3 Or Col = 5 Then
Pour qu'il tienne compte des colonnes A, B, C, E, F, H, I, J, O, P, Q
En deux
Que faudra t-il changer là
Me.Range("B:C,E:E").Copy
Pour copier les colonnes A:C, E:F, H:J, O:Q
 
Merci de votre réponse,
Oui c'est pour comprendre et avancer, j'ai essayer par moi-même de reproduire ce code en inscrivant ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
Col = Target.Column
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 5 Or Col = 6 Or Col = 8 Or Col = 10 Or Col = 15 Or Col = 16 Or Col = 17 Then
Me.Range("A:C,E:F,H:J,O:Q").Copy Destination:=Sheets("Feuil2").Range("A1")
Application.CutCopyMode = False
End

C'est pour ca que je bloque et que j'essaie de comprendre l'erreur, et je me dis que cela vient de ma sélection de colonne.

Encore merci de prendre de ton temps.
 
Dernière édition:
Bonjour.
On voit dans votre dernière image qu'il n'existe pas de feuille Excel "Feuil2".
Il existe bien un objet Worksheet Feuil2 que vous pourriez utiliser comme expression Worksheet, mais il représente la feuille Excel "POINT CONTRAT".
 
Merci de votre réponse,
Oui c'est pour comprendre et avancer, j'ai essayer par moi-même de reproduire ce code en inscrivant ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Col As Integer
Col = Target.Column
If Col = 1 Or Col = 2 Or Col = 3 Or Col = 5 Or Col = 6 Or Col = 8 Or Col = 10 Or Col = 15 Or Col = 16 Or Col = 17 Then
Me.Range("A:C,E:F,H:J,O:Q").Copy Destination:=Sheets("Feuil2").Range("A1")
Application.CutCopyMode = False
End If
End Sub


Ce lien n'existe plus


Mais il me met ce message d'erreur:
Ce lien n'existe plus

puis:
Ce lien n'existe plus

C'est pour ca que je bloque et que j'essaie de comprendre l'erreur, et je me dis que cela vient de ma sélection de colonne.

Encore merci de prendre de ton temps.
 
- 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

Discussions similaires

Réponses
16
Affichages
1 K
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
14
Affichages
247
Réponses
14
Affichages
469
Retour