XL pour MAC copie de valeur

  • Initiateur de la discussion Initiateur de la discussion Delorme
  • Date de début Date de début
  • Mots-clés Mots-clés
    vba

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 !

Delorme

XLDnaute Occasionnel
Bonjour à tous
debutant mais passionne d'excel voici ce que je voudrais faire par vba

1)rentrer une valeur dans b20 la copier dans a20 la ça marche!
puis décaler a20 avec sa valeur d'une ligne en dessous et 2 colonnes plus loin
comme on peut le constater le décalage est bien fait mais sans valeur
pouvez vous m'aider

Sub copy()
Range("a20").Value = Range("b20").Value
Cells(20, 1).Offset(1, 2).Select
End Sub

2)faire la même chose mais avec une couleur dans b20

merci
michel
 
Bonjour Delorme,
Sans chercher à quoi ça peut bien servir, excepté être didactique, et pour le fun, trois possibilités parmi des milliers :
VB:
Sub Copy1()
    Range("A20") = Range("B20").Value
    Range("A20").Cut Destination:=Range("A20").Offset(1, 2)
    Range("B20").Cut Destination:=Range("B20").Offset(1, 2)
    Range("B20").Offset(1, 2).Interior.Color = vbGreen
End Sub
Sub Copy2()
    Range("A20").Offset(1, 2) = Range("B20").Value
    Range("B20").Cut Destination:=Range("B20").Offset(1, 2)
    Range("B20").Offset(1, 2).Interior.Color = RGB(255, 255, 0)
End Sub
Sub Copy3()
    Valeur = Range("B20")
    Range("B20").ClearContents
    Range("A20").Offset(1, 2) = Valeur
    Range("B20").Offset(1, 2) = Valeur
    Range("B20").Offset(1, 2).Interior.Color = RGB(255, 0, 255)
End Sub
 

Pièces jointes

Bonjour Delorme,
Sans chercher à quoi ça peut bien servir, excepté être didactique, et pour le fun, trois possibilités parmi des milliers :
VB:
Sub Copy1()
    Range("A20") = Range("B20").Value
    Range("A20").Cut Destination:=Range("A20").Offset(1, 2)
    Range("B20").Cut Destination:=Range("B20").Offset(1, 2)
    Range("B20").Offset(1, 2).Interior.Color = vbGreen
End Sub
Sub Copy2()
    Range("A20").Offset(1, 2) = Range("B20").Value
    Range("B20").Cut Destination:=Range("B20").Offset(1, 2)
    Range("B20").Offset(1, 2).Interior.Color = RGB(255, 255, 0)
End Sub
Sub Copy3()
    Valeur = Range("B20")
    Range("B20").ClearContents
    Range("A20").Offset(1, 2) = Valeur
    Range("B20").Offset(1, 2) = Valeur
    Range("B20").Offset(1, 2).Interior.Color = RGB(255, 0, 255)
End Sub
 
Avant de livrer j'ai testé. 🙂
20221104_183646.gif

Attention, la cellule originale B20 est vide à la fin de la macro puisque on l'a déplacé, donc il faut y remettre quelques chose avant de faire le test.

Range("A20").Cut Destination:=Range("A20").Offset(1, 2)
On fait un couper de la cellule A20 puis on la colle en C21.
 
Bonjour Delorme,
Sans chercher à quoi ça peut bien servir, excepté être didactique, et pour le fun, trois possibilités parmi des milliers :
VB:
Sub Copy1()
    Range("A20") = Range("B20").Value
    Range("A20").Cut Destination:=Range("A20").Offset(1, 2)
    Range("B20").Cut Destination:=Range("B20").Offset(1, 2)
    Range("B20").Offset(1, 2).Interior.Color = vbGreen
End Sub
Sub Copy2()
    Range("A20").Offset(1, 2) = Range("B20").Value
    Range("B20").Cut Destination:=Range("B20").Offset(1, 2)
    Range("B20").Offset(1, 2).Interior.Color = RGB(255, 255, 0)
End Sub
Sub Copy3()
    Valeur = Range("B20")
    Range("B20").ClearContents
    Range("A20").Offset(1, 2) = Valeur
    Range("B20").Offset(1, 2) = Valeur
    Range("B20").Offset(1, 2).Interior.Color = RGB(255, 0, 255)
End Sub
 
Allez, comme il pleut, un petit essai avec :
VB:
Sub Copie()
    ' Faire ici la liste des adresses cellules à déplacer et dupliquer
    Liste = Array("A4", "B6", "C8", "D10", "A12", "B14", "C16", "D18")
    '-----------------------------------------------------------------
    Application.ScreenUpdating = False
    For i = 0 To UBound(Liste)
        Duplique Liste(i)
    Next
End Sub
Sub Duplique(N)
    With Range(N)
        Valeur = .Value
        .ClearContents
        .Offset(1, 1) = Valeur
        .Offset(1, 2) = Valeur
        .Offset(1, 2).Interior.Color = RGB(255, 255, 0)
    End With
End Sub
La liste des cellules se fait dans l'array Liste.
 

Pièces jointes

Allez, comme il pleut, un petit essai avec :
VB:
Sub Copie()
    ' Faire ici la liste des adresses cellules à déplacer et dupliquer
    Liste = Array("A4", "B6", "C8", "D10", "A12", "B14", "C16", "D18")
    '-----------------------------------------------------------------
    Application.ScreenUpdating = False
    For i = 0 To UBound(Liste)
        Duplique Liste(i)
    Next
End Sub
Sub Duplique(N)
    With Range(N)
        Valeur = .Value
        .ClearContents
        .Offset(1, 1) = Valeur
        .Offset(1, 2) = Valeur
        .Offset(1, 2).Interior.Color = RGB(255, 255, 0)
    End With
End Sub
La liste des cellules se fait dans l'array Liste.
 
Bonjour Sylvanu
Bravo !
votre travail m'en donne beaucoup pour comprendre ce que vous avez fait
je vous en remercie et je vais étudier toutes ces pistes qui au départ je l'avoue étaient un peu confuses
En effet j'avais deux problèmes celui de la copie avec couleur et celui du décalage
je ne pensais pas que ce serait si compliqué

en faire une boucle me parait difficile et il faut que j'analyse tout votre travail et apprendre cette façon de procéder (j'en suis content)

Pour faire plus simple si ce n'est trop vous demander, pourriez vous me montrer comment faire une boucle
en rentrant une donnée au lieu de taper tout ce que je vous montre en copie


Sub dd()

Cells(2, 2).Interior.ColorIndex = Cells(3, 3).Value ' affiche n° rentre ****en b2
Cells(3, 2).Interior.ColorIndex = Cells(4, 3).Value ' affichen° rentre'****en b3
Cells(4, 2).Interior.ColorIndex = Cells(5, 3).Value ' affichen° rentre'****en b4
End Sub
••••ˇˇˇˇ

merci
michel
 
Et toujours pas de fichier test. 😡 donc je vais me le taper.
Comprenez que je ne livre que des modules testés, contrairement à ce que vous disiez au post #4.
C'est le minimum.

Bizarre cette idée de mettre la couleur dans des cellules.
De plus il faut tester si ce nombre est inférieur à 56 car ColorIndex va de 1 à 56. Qui plus est le N° de couleur n'est pas sur la même ligne.
VB:
Sub dd()
For L = 2 To 36
    If Cells(L + 1, 3) <= 56 Then
        Cells(L, 2).Interior.ColorIndex = Cells(L + 1, 3).Value ' affiche n° rentre ****en b2
    Else
        Cells(L, 2).Interior.Color = xlNone                     ' Transparent si ColorIndex>56
    End If
Next L
End Sub
 

Pièces jointes

- 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
7
Affichages
423
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
773
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
213
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
Réponses
2
Affichages
371
Retour