Déplacement d'un cellule R vers R+1

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 !

jarod1990

XLDnaute Nouveau
Bonjour,
Je cherche à déplacer la sélection de la cellule vers la droite.
Je m'explique :
Je sélectionne la cellule initial via inputbox je note la cellule dans R (disons"A1".
Je copie une valeur dans R depuis un autre classeur CAA "A9"
J'aimerai que automatiquement R devienne (r+1)"A2" pour copier une autre valeur du classeur CAA ou la même.
Voici mon code mais il bloque au moment de activeCell

Private Sub CommandButton1_Click()
Dim Entree As Workbook, Sortie As Workbook
Dim plg As Range, R$
Dim S As Range


'on sélectionne la cellule que l'on rentre dans la valeur R
Set plg = Application.InputBox _
("Sélectionner une cellule", , , , , , , 8)
R = plg.Address

Nomfichierentree = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")
' On verifie que l'on a selectionné un nom de classeur
If Nomfichierentree <> False Then
' On ouvre le classeur
Set Entree = Workbooks.Open(Nomfichierentree)
Set Sortie = ThisWorkbook

' copies des cellules de la feuille d'entrée vers la feuille de sortie
Sortie.Worksheets("Feuil1").Range(R) = Entree.Worksheets("CAA").Range("A9")

ActiveCell(0, 1) = S

Sortie.Worksheets("Feuil1").Range(S) = Entree.Worksheets("CAA").Range("A8")

ThisWorkbook.Activate
End If
End Sub


Merci de votre aide.
ja
 
Re : Déplacement d'un cellule R vers R+1

Bonjour Jarod,

voici si j'ai bien compris:

+L'inputbox te propose à l'ouverture la cellule active.
tu peux bien-sûr en changer
La première valeur est copiée dans la cellule donnée
La deuxième valeur est copier dans celle de droite

Code:
Private Sub CommandButton1_Click()
    Dim Entree As Workbook, Sortie As Workbook
    Dim plg As Range, R$
    Dim S As Range
    Dim nomfichierentree
    'on sélectionne la cellule que l'on rentre dans la valeur R
    Set plg = Application.InputBox("Sélectionner une cellule", , ActiveCell.Address, , , , , 8)
    If plg Is Nothing Then Exit Sub
    
    'Vérification du nombre de cellule de la plage
    'Réduction éventuelle à 1 cellule
    
    If plg.Cells.Count > 1 Then Set plg = plg.Resize(1, 1)
    
    nomfichierentree = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")
    
    ' On verifie que l'on a selectionné un nom de classeur
    If nomfichierentree <> False Then
        ' On ouvre le classeur
        Set Entree = Workbooks.Open(nomfichierentree)
        Set Sortie = ThisWorkbook
        ' copies des cellules de la feuille d'entrée vers la feuille de sortie
        plg = Entree.Worksheets("Feuil1").Range("A9")
        plg.Offset(,1) = Entree.Worksheets("Feuil1").Range("A8")
        ThisWorkbook.Activate
    End If
End Sub

A+
 
Re : Déplacement d'un cellule R vers R+1

ça fonctionne pas. En fait je souhaite qu'après la copie de "A9" dans la cellule sélectionnée R, "A9" (ou plutard une autre cellule) soit copiée dans la cellule à droite de R.
Mon problème initial étant la transformation de plusieurs cellules placées sur une feuille en une seule ligne (sur autre feuille) que je choisi via la souris (ligne composée de plusieurs cellules).

Merci de votre Aide.
Jarod.
 
Re : Déplacement d'un cellule R vers R+1

Re,

La macro que je t'ai donnée ne fonctionne pas? Chez moi cela le fait.

Si A9 est choisie la première valeur va dans A9 et la seconde dans B9A

Alors qu'est-ce qui ne fonctionne pas?

A+
 
Re : Déplacement d'un cellule R vers R+1

RE,

Jarod, comme beaucoup tu dois oublier de recompiler le projet avant de lancer la commande F5 ou la macro en question après avoir fait tes modifications dans VBE.

Pour compiler le projet, dans l'éditeur de macro (VBE) menu Debogage/Compiler le projet ou cliquer sur l'icône qui représente une pile de feuille avec une flèche bleue.

A+
 
Re : Déplacement d'un cellule R vers R+1

Merci beaucoup du conseil.
Encore une petite question :
j'aimerai qu'au lieu de copier une seule cellule (ici A9) je copie des cellules concatinées.
J'ai écris ceci comme code mais ça mais une erreur au niveau de Range.

Private Sub CommandButton1_Click()
'Déclaration des variables
Dim Entree As Workbook, Sortie As Workbook
Dim plg As Range, R$, K$
Dim S As Range
Dim nomfichierentree
Dim concatene As Variant
Dim n As Integer




'on sélectionne la cellule que l'on rentre dans la valeur R
Set plg = Application.InputBox("Sélectionner une cellule", , ActiveCell.Address, , , , , 8)
If plg Is Nothing Then Exit Sub

'Vérification du nombre de cellule de la plage
'Réduction éventuelle à 1 cellule

If plg.Cells.Count > 1 Then Set plg = plg.Resize(1, 1)

nomfichierentree = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")

' On verifie que l'on a selectionné un nom de classeur
If nomfichierentree <> False Then
' On ouvre le classeur
Set Entree = Workbooks.Open(nomfichierentree)

'concaténation

concatene = Range("A1").Value ' valeur de départ de la concaténation dans nomdefichierrentree
For n = 2 To Range("A10").End(xlUp).Row 'on note la cellule de fin de concaténation dans nomdeichierrentree
concatene = concatene & Range("A" & n).Value 'écriture de la valeur concaténer dans la variable concatene
Next
K = concatene

Set Sortie = ThisWorkbook
' copies des cellules de la feuille d'entrée vers la feuille de sortie
plg = Entree.Worksheets("CAA").Range(K)

ThisWorkbook.Activate
End If
End Sub​

Merci d'avance de ton aide.
Jarod
 
- 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
3
Affichages
522
Réponses
3
Affichages
726
Réponses
7
Affichages
674
Retour