Excel copier/coller macro

kifran -  
jjsteing Messages postés 1803 Statut Contributeur -
Bonjour,
bonjour,
j'ai 4 feuilles je voudrais copier coller les cellules colonne A des 3 premieres feuilles dans la meme colonne de la feuille 4 les unes apres les autres en ayant un teste si dans colonne feuille 1 cellule vide alors copier colonne A feuille 2 si cellule vide alors copier cellule colonne A feuille 3
merci pour votre aide
A voir également:

32 réponses

kifran21 Messages postés 18 Statut Membre
 
dans la colonne A des feuille 1,2,3 il y a un certains nombre de cellule remplies et je voudrais copier chaque cellule dans la feuil 4 les une apres les autre dans une seule colonne A
donc test dans feuille 1 copier chaque cellule dans feuil4 jusqua cellule vide si vide passer dans feuille 2 copier toutes cellule remplies si vide passer feuille 3 etc
0
jjsteing Messages postés 1803 Statut Contributeur 181
 
bon, j comprend pas tout.. mais voici les fonctions qui peuvent t'aider :


for NumFeuille =1 to 3
ligne=1
set ValCherche = Worksheets(NumFeuille).Cells(ligne, 1)
Do While ValCherche <> ""

Worksheets(4).Cells(ligne, 1) = Worksheets(NumFeuille).Cells(ligne, 1)

ligne=ligne+1
set ValCherche = Worksheets(NumFeuille).Cells(ligne, 1)

loop

next
0
kifran21 Messages postés 18 Statut Membre
 
je suis désolé mais je ne comprends pas vraiment,tous simplement car mon niveau ........
j'arretes de vous importuner
merci
0
jjsteing Messages postés 1803 Statut Contributeur 181
 
Mais nan!! revient :p

Il faut se prendre un peu la tete pour comprendre.. apres tu le sera, et tu comprendra comment faire...
0
kifran21 Messages postés 18 Statut Membre
 
j'ai 13 feuil + une feuille temp
je voudrais copier a2:a32 de chacune des 13 feuilles vers la colonne A de la feuil temp les une en dessous des autres
mais avec un test disant de recopier seulement les cellules contenant une valeur afin que dans la feuil temp il ni ai pas de cellule vides entre les valeur car dans chacune des 13 feuil dans la plage a2:a32 toutes les cellules ne sont pas pleines
0

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

Posez votre question
jjsteing Messages postés 1803 Statut Contributeur 181
 
as tu des cellules vides dans une feuille comme :
A1=a, A2=b, A4=c,A5=d

ou sont elles vraiment toutes à la suite ?
0
kifran21 Messages postés 18 Statut Membre
 
dans chacune des 13 feuilles il y aura peut etre des vides a1=2 a2=3 a3=vide a4=8 etc mais dans la feuille temp toutes doivent s'inscrire les une apres les autre dans la colonne A et sans aucune cellule vide
0
kifran21 Messages postés 18 Statut Membre
 
si,
dans chacune des 13 feuille comme je dois rentrer les données dans la plage a2:a32 il y a les meme cellules remplie pas avec les meme valeur
feuil1 a1=5 a2=3 a3=vide a4=6
feuil2 a1=2 a2=vide a3=vide a4=9

etc
en fait je rentre des montants dans les treize feuilles et dans temp je dois toutes les inscrire dans une seule colonne a1:a......................
0
jjsteing Messages postés 1803 Statut Contributeur 181
 
donc tu veux que de :
feuil1 a1=5 a2=3 a3=vide a4=6
feuil2 a1=2 a2=vide a3=vide a4=9

ca te mette dans la feuille temp :

a1=5 a2=3 a3=6 a4=2 a5=9 c'est ca?
0
kifran21 Messages postés 18 Statut Membre
 
exactement


merci
0
jjsteing Messages postés 1803 Statut Contributeur 181
 
ah.. on y arrive :)

Ca donnerais ca ;) :

NumLigneTemp = 1 'Numero de la ligne de la colonne A dans Temp
For feuille = 1 To Sheets.Count
With Worksheets(feuille)
If .Name <> "Temp" Then
.Activate
For NumLigne = 2 To 36
If .Cells(NumLigne, 1) <> "" Then
Worksheets("Temp").Cells(NumLigneTemp, 1) = .Cells(NumLigne, 1)
NumLigneTemp = NumLigneTemp + 1
End If
Next
End If
End With
Next
0
kifran21 Messages postés 18 Statut Membre
 
je commence a voir,

mais visiblement si dans le classeur les feuilles ne sont pas temp alors ...
If .Name <> "Temp" Then
mais le classeur contient au moins 17 feuilles seule 13 sont concernés peut ont dire les 13 premieres feuilles
0
jjsteing Messages postés 1803 Statut Contributeur 181
 
Non, "temp" est le nom de la feuille où il met les données.. mais tu peux l appelé comme tu veux, il faut juste changer le nom de la feuille destination ici

If .Name <> "Temp" Then
Worksheets("Temp").Cells(NumLigneTemp, 1) = .Cells(NumLigne, 1)

Apres tes autres feuilles (sopurces) peuvent s appeler comme tu veux et pas forcement avec un nom qui se vu car avec:
For feuille = 1 To Sheets.Count
With Worksheets(feuille)

la variable feuille prend le numéro d'une feuille, et je fais référence à cette feuille source via son numéro et non son nom ;)
0