copier coller avec bouton rafraichir

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

nintendo

XLDnaute Nouveau
Bonjour,

Je commence le vba excel et j’aurais besoin d’aide concernant une macro .

Son but est de faire un copier coller entre deux feuilles excel dès que l’on clique sur un
bouton rafraichir mais sans recopier toutes les données à chaque fois. Les données à copier sont sur dans la feuille 1 sur laquelle j’ai 11 colonnes.
Pour ne pas recopier les lignes déjà copiées, je regarde sur la feuille 2 la première ligne vide et je vais prendre les données de cette ligne jusqu’à la première ligne vide de la feuille 1.

Voici le code que j’ai fait, je sui conscient qu’il doit y avoir beaucoup d’erreurs mais je ne réussis pas à les corriger, je débute à peine… Par exemple pour moi "A" & I veut dire la ligne i de la colonne 1, je ne suis pas du tout sur de cette écriture.

Je voudrais aussi faire un bouton rafraichir dans la feuille 2 mais je n’arrive pas à l’intégrer directement sur la feuille excel. J’utilise une useform mais ça me l’affiche dans une autre fenêtre.

Sub actualiser()
Sheets("feuille2").Select
i = Range("A2").Select
DO i=ActiveCell.Offset(1,0).Select While NOT(isempty(i))

Sheets.("feuille1").Select
k = Range("A2").Select
DO k=ActiveCell.Offset(1,0).Select While NOT(isempty(k))
Range(["A" & i] : ["J" & k].Select
Range("A" & k).Activate
Selection.Copy
Sheets("feuille2").Select
Range("A" & i).Select
ActiveSheet.Paste
End Sub

Merci d’avance pour votre aide !
 
Re : copier coller avec bouton rafraichir

Bonjour nintendo et le forum,

Une syntaxe possible :

Sub actualiser()
Dim Derlig1 As Integer, Derlig2 As Integer, Plage As Range
With Sheets("Feuil2")
Derlig2 = .Range("A65000").End(xlUp).Row
End With
With Sheets("Feuil1")
Derlig1 = .Range("A65000").End(xlUp).Row
Set Plage = .Range(.Range("A" & Derlig2 + 1), .Range("K" & Derlig1))
Plage.Copy
End With
With Sheets("Feuil2")
.Range(.Range("A" & Derlig2 + 1), .Range("k" & Derlig1)) = Plage.Value
End With
End Sub
 
Re : copier coller avec bouton rafraichir

Merci beaucoup pour la rapidité! je vais aller tester ça.

Aurais-tu une idée pour le bouton que je voudrais insérer dans la feuille 2 qui permettrait d'importer les nouvelles données mises dans la feuille1?

Merci
 
Re : copier coller avec bouton rafraichir

Re,

Pour avoir une aide directe, il suffit, lorsque l'on est dans l'éditeur VBA, de sélectionner le mot sur lequel on veut plus de précision et de faire la commande F1 sur le clavier.
 
Re : copier coller avec bouton rafraichir

Merci, c'est bon à savoir!

J'essaie maintenant de soustraire deux dates sur toutes les lignes du tableur.
Dim i As Integer
nblignes = .Range("A65000").End(xlUp).Row
J'ai tapé cela: For i = 0 To nblignes
Range("C" & i).Value = Range("B" & i).Value - Range("A" & i).Value
Next i

j'ai une erreur de compilation, pouvez vous me dire si ce que j'ai tapé est faux?

Merci
 
Dernière édition:
Re : copier coller avec bouton rafraichir

re,

Changer éventuellement le nom de la feuille et le point de départ de la boucle, ici ligne 2 mais cela ne peut pas être la ligne 0 :
Essaye ce code :

Sub macro()
Dim i As Integer, Nblignes As Integer
With Sheets("Feuil2")
Nblignes = .Range("A65000").End(xlUp).Row
For i = 2 To Nblignes
.Range("C" & i).Value = .Range("B" & i).Value - .Range("A" & i).Value
Next i
End With
End Sub
 
Re : copier coller avec bouton rafraichir

J'ai inseré ton code puis j'ai tapé dans la feuille:
17:00 19:00
03:07 04:02
12:19 15:08

en A et B et j'ai obtenu
0.038194444
0.117361111
dans la C.

Je n'ai pas de résultat pour C1 mais c'est normal
 
Dernière édition:
Re : copier coller avec bouton rafraichir

Merci, ça fonctionne très bien!

Je me suis dit qu'au lieu de rentrer les heures à la main je pourrais faire une macro qui, dès que l'on clique sur une cellule, affiche l'heure automatiquement.

Voici ce que j'ai fait:
Je précise que les colonnes A et B auront le même nombre de lignes remplies.

Sub afficher_heure(ByVal Target As Range)
Nblignes = .Range("A65000").End(xlUp).Row
If Not Intersect(Target, Range("A2:A& Nblignes || B2:A& Nblignes")) Is Nothing Then ActiveCell.Value = Now()
Selection.NumberFormat = "h:mm"
End Sub

Je dois avoir un problème d'écriture avec les "" mais je ne vois pas trop.
J'ai de plus essayé un cas plus simple: par exemple "A2:A10" mais dès que je clique sur une cellule celà ne fonctionne pas.

En fait, je n'arrive pas à lancer cette macro car elle n'est pas présente quand je fais macro et quand je regarde dans la liste des macros.

Merci beaucoup pour l'aide apportée 🙂
 
Re : copier coller avec bouton rafraichir

Bonjour,

La macro évènementielle est activée par un double click dans les colonnes A ou B.

1- Après un double click dans la colonne A, elle inscrit l'heure dans la cellule active.
2- Après un double click dans la colonne B, elle inscrit l'heure dans la cellule active puis inscrit la différence B-A dans la colonne C.
 

Pièces jointes

Re : copier coller avec bouton rafraichir

Bonjour,

Un énorme pour merci pour ta réactivité et pour ton aide!

En revanche, j'ai de nouveau un problème sur une macro pourtant assez simple.


Sub time()


With Sheets("Sheet1")
Dim Nblignes As Integer
Dim i As Integer
Nblignes = .Range("A65000").End(xlUp).Row
For i = 2 To Nblignes

If .Range("A" & i).Value = "toto" Then .Range("B" & i).Value = "dupont"
ElseIf .Range("A" & i).Value = "toto1" Then .Range("B" & i).Value = "dupont1"
ElseIf .Range("A" & i).Value = "toto2" Then .Range("B" & i).Value = "dupont2"
Else: .Range("B" & i).Value = ""
Next i
End If
End With
End Sub

J'ai une erreur lors de la compilation me disant "else without if" Je ne comprends pas vraiment cette erreur.

Merci d'avance.
 
Dernière édition:
- 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
214
Réponses
9
Affichages
367
Retour