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 !

pizzaman

XLDnaute Occasionnel
Bonjour,
Je vais essayer de me faire comprendre au mieux, mais c'est un peu compliqué à expliquer 🙄

J'ai besoin d'une macro pour sauvegarder le contenu d'une cellule en feuille 1 sur la feuille 2 via un bouton , en sachant que le contenu de cette cellule change, il faudrait qu'à chaque fois que j'appuie sur ce bouton le contenu soit sauvegarder en A1 puis A2, en A3...

Pouvez vous m'aider?
 
Re : sauvegarde cellule

Bonsoir le fil, pizzaman

copie le contenu d'une cellule en feuille 1 (par forcément en [A1]), sur la feuille 2 (en colonne A, 1ère cellule libre) via un bouton (en Feuil1)

Code:
    With Feuil2
        .Range("A" & .[A65536].End(xlUp).Row - CInt(.[A1] <> "")) = ActiveCell
    End With

Vois si la PJ convient

A plus
 

Pièces jointes

Dernière édition:
Re : sauvegarde cellule

Bonjour pizzaman
Dommage qu'on ait pas votre classeur... Voyez si le classeur joint peut vous aider.
Code:
[COLOR="DarkSlateGray"][B]Sub copie()
[COLOR="SeaGreen"]'Copie la cellule A1 de la feuille courante après la dernière cellule non _
vide de la colonne A de la feuille suivante.[/COLOR]
   With Sheets(Me.Next.Name)
      If IsEmpty(.[A1]) Then
         .[A1] = Me.[A1]
      Else
         .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0) = Me.[A1]
      End If
   End With
End Sub[/B][/COLOR]
(Code à placer dans le module de feuille contenant la cellule A1 à copier.)​
ROGER2327
#2316
 

Pièces jointes

Re : sauvegarde cellule

Bonjour soenda
En suivant votre bonne idée pour traiter le cas du premier enregistrement, je corrige mon code :
Code:
[COLOR="DarkSlateGray"][B]Sub copie()
   With Sheets(Me.Next.Name)
      .Cells(.Rows.Count, 1).End(xlUp).Offset(1 + IsEmpty(.[A1]), 0) = Me.[A1]
   End With
End Sub[/B][/COLOR]
Bonne journée.
ROGER2327
#2317
 
Re : sauvegarde cellule

Bonjour Soenda, Roger

Déjà merci pour vos réponses


Soenda,

Cette formule ne marche pas pour moi car elle copie la cellule qui est sectionnée alors que moi j'ai besoin de copier une cellule bien déterminée


Roger,

Celle ci est parfaite, c'est ce principe la qu'il me faut, mais qu'est ce que je dois changer si je veux copier les résultats de la cellule I5 feuil1 pour les mettre dans la feuil2 à partir de la cellule C10?

J'aurais du préciser les emplacements des cellules qu'il me fallait tout de suite, je pensais pouvoir modifier la formule après mais dès que je change ca fonctionne plus
 
Re : sauvegarde cellule

Re...
J'aurais du préciser les emplacements des cellules qu'il me fallait tout de suite
Oui !
_
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]Sub copie()
   With Sheets(Me.Next.Name)
      .Cells(WorksheetFunction.Max(10, .Cells(.Rows.Count, 3).End(xlUp).Row), 3).Offset(1 + IsEmpty(.[C10]), 0) = Me.[I5]
   End With
End Sub[/B][/COLOR]
ROGER2327
#2328
 
Dernière édition:
Re : sauvegarde cellule

Super, ca fonctionne à merveille

Sans vouloir abuser de votre gentillesse, j'ai besoin de sauvegarder cette même cellule (I5) après la dernière cellule écrite de la colonne E, tout ca sur la feuil1
En gros la même chose mais sans changer de feuille cette fois ci

Merci beaucoup
 
Re : sauvegarde cellule

Re,

Sauvegarde de la cellule "I5" après la dernière cellule écrite de la colonne E. Tout ça sur la feuil1.
Code:
Range("E" & [E65536].End(xlUp).Row ) = [I5]
Désolé pour l'erreur (un point en trop, dû au copier/coller) 😱

A plus
 
Re : sauvegarde cellule

Re...
Voici une solution :
Code:
[COLOR="DarkSlateGray"][B]Sub copie()
   With Sheets(Me.Next.Name)
      .Cells(WorksheetFunction.Max(10, .Cells(.Rows.Count, 3).End(xlUp).Row), 3).Offset(1 + IsEmpty(.[C10]), 0) = Me.[I5]
   End With
   With Me
      .Cells(WorksheetFunction.Max(1, .Cells(.Rows.Count, 5).End(xlUp).Row), 5).Offset(1 + IsEmpty(.[E1]), 0) = .[I5]
   End With
End Sub[/B][/COLOR]
_
Comme votre problème change à chaque réponse qu'on donne, voici deux autres codes plus faciles à modifier :
Code:
[COLOR="DarkSlateGray"][B]Sub copie_une_fois()
Dim Cel_Origine As Range, Cel_Destination As Range
   Set Cel_Origine = Sheets("Feuil1").Range("I5") [COLOR="SeaGreen"]'***[/COLOR]
   Set Cel_Destination = Sheets("Feuil2").Range("C10") [COLOR="SeaGreen"]'***[/COLOR]
   With Cel_Destination.Cells
      .Parent.Cells(WorksheetFunction.Max(.Row, .Parent.Cells(.Parent.Rows.Count, _
         .Column).End(xlUp).Row), .Column).Offset(1 + IsEmpty(.Value), 0) = Cel_Origine
   End With
End Sub[/B][/COLOR]
Vous pouvez choisir la cellule d'origine et la cellule de destination en modifiant les lignes marquées '***.

S'il il y plusieurs cellules de destination, utilisez ce code :
Code:
[COLOR="DarkSlateGray"][B]Sub copie_plusieurs_fois()
Dim i As Long
Dim Cel_Origine
Dim Cel_Destination
   Set Cel_Origine = Sheets("Feuil1").Range("I5") [COLOR="SeaGreen"]'***[/COLOR]
   Cel_Destination = Array(Sheets("Feuil1").Range("E1"), Sheets("Feuil2").Range("C10")) [COLOR="SeaGreen"]'***[/COLOR]
   For i = LBound(Cel_Destination) To UBound(Cel_Destination)
      With Cel_Destination(i).Cells
         .Parent.Cells(WorksheetFunction.Max(.Row, .Parent.Cells(.Parent.Rows.Count, _
            .Column).End(xlUp).Row), .Column).Offset(1 + IsEmpty(.Value), 0) = Cel_Origine
      End With
   Next i
End Sub[/B][/COLOR]
Vous pouvez choisir la cellule d'origine et les cellules de destination en modifiant les lignes marquées '***.

Remarque : le premier code doit être placé dans le module de la feuille qui contient la cellule d'origine. La cellule de destination est dans la feuille suivante.
Les deux autre codes peuvent être placés dans un module standard ou un module de feuille selon les besoins.​
ROGER2327
#2329
 
Re : sauvegarde cellule

Mon problème n'a pas changer, c'est simplement que je pensais reprendre le même code en le modifiant mais sur ces formules c'était un peu plus compliqué pour moi

La première formule est très bien, en fait pour ne pas changer de feuil, j'avais juste à remplacer "With Sheets(Me.Next.Name)" par "with me", mais il fallait le savoir

les formules pour plusieurs destinations ont l'air bien aussi

en tout cas grand merci pour les réponses

Bonne nuit
A+
 
Re : sauvegarde cellule

Re...
Mon problème n'a pas changer, c'est simplement que je pensais reprendre le même code en le modifiant mais sur ces formules c'était un peu plus compliqué pour moi

La première formule est très bien, en fait pour ne pas changer de feuil, j'avais juste à remplacer "With Sheets(Me.Next.Name)" par "with me", mais il fallait le savoir

les formules pour plusieurs destinations ont l'air bien aussi

en tout cas grand merci pour les réponses

Bonne nuit
A+
Tant mieux si ça marche !
J'attire seulement votre attention sur le fait que la première solution impose que les deux feuilles utilisées se suivent dans le classeur. Vous pourriez avoir un problème si une feuille venait à être intercalée. Dans ce cas, les autres solutions seraient plus appropriées.​
Bon courage pour la suite.
ROGER2327
#2331
 
- 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
2
Affichages
244
Réponses
7
Affichages
515
Retour