Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier et coller définitvement valeur d'une cellule selon une autre qui varie

Martylinho

XLDnaute Nouveau
Bonjour,

Voici mon problème:
Je voudrais qu'un copier coller ce fasse automatiquement selon si une valeur est situé entre x et y.
Je m'explique, en A1 j'ai une valeur que change régulièrement, dès que A1 est situé entre 11 et 12 il faudrait que la valeur de A1 soit coller définitivement dans A2 ; dès que A1 est situé entre 10 et 11 il faudrait que la valeur de A1 soit coller définitivement dans A3 ...etc... Au fur et à mesure que les valeurs changent en A1 je voudrais avoir entre A2 et A? l'historique.

Est-ce possible à faire et surtout comment?
Merci à tous de votre aide
 

Martylinho

XLDnaute Nouveau
Re : Copier et coller définitvement valeur d'une cellule selon une autre qui varie

????
Pas d'énervement, j'ai juste dit que ta solution ne convenait pas et que celle de Robert m'allait avec un ajustement jusqu’à la cellule A30...

Ta solution ne fonctionne pas car la valeur de la cellule variable viens d'une autre feuille qui viens d'un autre fichier
 

Martylinho

XLDnaute Nouveau
Re : Copier et coller définitvement valeur d'une cellule selon une autre qui varie

????
Pas d'énervement, j'ai juste dit que ta solution ne convenait pas et que celle de Robert m'allait avec un ajustement jusqu’à la cellule A30...

Ta solution ne fonctionne pas car la valeur de la cellule variable viens d'une autre feuille qui viens d'un autre fichier
Voici le fichier avec les explications, j'espère que cela te vas et merci de ton aide.
Martylinho
 

Pièces jointes

  • Martylinho.xls
    24.5 KB · Affichages: 43

Dranreb

XLDnaute Barbatruc
Re : Copier et coller définitvement valeur d'une cellule selon une autre qui varie

Ça ne marche pas parce que vous n'avez pas mis la procédure que je vous ai indiquée dans le module ThisWorkbook.
Maintenant vous avez dit
Le problème est que la valeur en A1 change grâce à un autre fichier ce n'est pas moi qui change la valeur manuellement !
d'ou j'en déduisais que cette colonne contenait des formules qui reprenaient les valeurs de cet autre fichier. Or le fichier joint y contient des constantes. Ma procédure ne fait pas le traitement quand elles changent mais quand on active le fichier, car je me disais qu'elle n'allaient changer que pendant que l'autre classeur est actif. Enfin quoi qu'il en soit cette procédure, à mettre cette fois dans un module ordinaire, effectue ce que vous demandiez, à un détail près: elle copie la valeur dès 1ère exécution, sinon il n'y a pas moyen de savoir si c'est une valeur changée ou non.
VB:
Sub CopierFinValeursDifférentes()
Dim CelA As Range, CelFin As Range
For Each CelA In Feuil1.[A1:A30]
   Set CelFin = CelA.Offset(, 1)
   If CelFin.Value = "" Then
      CelFin.Value = CelA.Value
   ElseIf CelA.Value <> "" Then
      Set CelFin = CelA.End(xlToRight)
      If CelFin.Value <> CelA.Value Then CelFin.Offset(, 1).Value = CelA.Value
      End If
   Next CelA
Il ne vous reste plus qu'à mettre en tant que simple instruction:
VB:
CopierFinValeursDifférentes
dans une procédure évènement de votre choix la plus appropriée au moment où vous souhaitez qu'elle s'exécute.

Ah, je viens juste de voir seulement "Le tout par un bouton". Oui, pas de problème, vous pouvez l'appeler depuis une CommandButtonX_Click dans le module de la feuille, on affecter la macro à un bouton de formulaire. A chaque fois qu'on l'exécute elle examine l'ensemble des valeurs de A1:A30 de Feuil1 et va aller copier les valeurs qui différent de la dernière trouvée à droite dans une nouvelle encore à droite. Attention: le cas ou la ligne serait pleine n'est pas géré.
À +
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…