Programme VBA

Fermé
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017 - Modifié par BmV le 29/12/2016 à 10:42
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 - 1 janv. 2017 à 17:22
Bonjour,

je désire copie les valeurs se trouvant dans les mèmes cellules des feuilles d'un classeur excel


j ai le programme qui copie ces valeurs dans une feuille appeler TABLEAU
le programme marche très bien

MAIS!!
lorsque je supprime les feuilles (sauf la feuille 'TABLEAU') et je ramène d'autre feuille

le programme copie sur les donnes et écrase celle existante

je veux le modifie pour coller les nouvelles donnes a chaque fois en bas de tableau ou a la première ligne de tableau

y a t-il un moyen??

voici le PROGRAME

ACUALISER
' Dim Wsh As Worksheet, FeuilRecap As Worksheet, k As Integer

Set FeuilRecap = Worksheets("TABLEAU") 'feuille ou coller
k = 2 'autant débuter le "collage" à la seconde ligne

'boucle sur toutes les feuilles du classeur
For Each Wsh In ThisWorkbook.Worksheets
'Si la feuille (en cours dans la boucle) n'est pas la feuille récap alors
If Not Wsh Is FeuilRecap Then
'copié-collé
Wsh.Range("i1:v1").Cut FeuilRecap.Rows(k)
'ligne suivante pour le collage
k = k + 1
End If
Next Wsh

End Sub


6 réponses

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
28 déc. 2016 à 18:05
en bas de tableau ou a la première ligne de tableau?
c'est toi qui a écrit:
k = 2 'autant débuter le "collage" à la seconde ligne
?
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
28 déc. 2016 à 18:22
oui , k=2 pour commencer le tableau

mais comment faire pour commencer chaque fois a la dernière ligne de tableau ! ou il va faire décaler les cellules vers le bas de tel manière a ne pas les écraser ; et mettre les nvelle donnes a la place!
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
28 déc. 2016 à 21:05
Ceci devrait copier après la dernière ligne utilisée:
k=wsh.UsedRange.Rows(wsh.UsedRange.Rows.Count).Row+1
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
29 déc. 2016 à 08:19
bonjour
k=wsh.UsedRange.Rows(wsh.UsedRange.Rows.Count).Row+1

il faut laisser le programme tel quel est rajouter cette ligne?
la mettre a la place de k=k+1?
comment?

merci
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
29 déc. 2016 à 10:04
à la place de
k=2
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
29 déc. 2016 à 10:15
j'ai fais ça! mais sa marche pas.


ACUALISER
' Dim Wsh As Worksheet, FeuilRecap As Worksheet, k As Integer

Set FeuilRecap = Worksheets("TABLEAU") 'feuille ou coller

k=wsh.UsedRange.Rows(wsh.UsedRange.Rows.Count).Row+1
'boucle sur toutes les feuilles du classeur
For Each Wsh In ThisWorkbook.Worksheets
'Si la feuille (en cours dans la boucle) n'est pas la feuille récap alors
If Not Wsh Is FeuilRecap Then
'copié-collé
Wsh.Range("i1:v1").Cut FeuilRecap.Rows(k)
'ligne suivante pour le collage
k = k + 1
End If
Next Wsh

End Sub

sa bloque....
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
29 déc. 2016 à 10:18
c'est plutôt
k=FeuilRecap.UsedRange.Rows(FeuilRecap.UsedRange.Rows.Count).Row+1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
29 déc. 2016 à 10:41
elle ne fait rien!!!
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
29 déc. 2016 à 12:21
peut-être que les lignes sont copiées beaucoup plus bas?
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
29 déc. 2016 à 12:46
Mieux ainsi?
k=FeuilRecap.Cells(Rows.Count, 1).End(xlUp).Row
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
29 déc. 2016 à 15:30
merci
SA MARCHE
mais il colle sur la dernière ligne! " il écrase la derniere ligne dejà rempli
je veux au dessous! just au dessous des données, je veux perdre a chaque fois une ligne!
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
29 déc. 2016 à 17:39
sorry, j'ai négligé le
+1
:
k=FeuilRecap.Cells(Rows.Count, 1).End(xlUp).Row + 1 
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
30 déc. 2016 à 15:53
merci bcp
sa marche
bravo

il me reste une macro pour supprimer les doublons et les ligne vides

j ai fais une pour les doublons ! (je l'ai trouvé sur ce forum)
mais pas pour les ligne vide!
voici la macro
------------------
Sub SupprimerDoublons4C()

Dim monDico As Object
Dim i As Integer

Set monDico = CreateObject("Scripting.Dictionary")

Application.ScreenUpdating = False

i = 1
Do While Cells(i, "A") <> ""
If Not monDico.Exists(Cells(i, "A") & Cells(i, "B") & Cells(i, "C") & Cells(i, "D")) Then
monDico(Cells(i, "A") & Cells(i, "B") & Cells(i, "C") & Cells(i, "D")) = ""
i = i + 1
Else
Rows(i).EntireRow.Delete
End If
Loop

End Sub
------------------------------
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
30 déc. 2016 à 16:03
C'est amusant, parce que la macro de suppression des doublons va s’arrêter à la première ligne vide.
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
30 déc. 2016 à 16:23
excact!
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
31 déc. 2016 à 18:01
bonjour
bonne année

la macro 'Actualiser' marche tres bien
copie 'sans' prblm
mais a chaque fois un message me dit " erreur d'execution '104' impossible de modifie les cellules fusionnée

comment faire pour faire disparaitre ce mesage??
je ne veux pas qu'il s'affiche, !!
y a t-il un moyen?
merci bcp
0