collage un à un !!!

glaine

XLDnaute Junior
Bonjour à tous,
Comme d'habitude, merci d'avance pour toutes aides apportées. J'ai crée une macro qui cherche certaines valeurs dans une colonne et va les coller dans une autre :
Code:
Sub CollerExam()
Dim nbrecell As Integer
Dim plage As Range
Set plage = Range("A2", [A2].End(xlDown))
Cells.NumberFormat = "@"
For Each cell In plage.Cells
   If IsEmpty(Selection) = False Then
       If Not cell.Value Like "0*" Then
       Selection.Cut
       Range("C2").Select
       Selection.Insert Shift:=xlDown
       End If
   End If
Next
End Sub
Mon soucis est qu'elle prend toutes les valeurs de la colonne et les colle à l'endroit souhaité et finit par m'afficher un message d'erreur comme quoi la zone de coupe et de collage ne correspondent pas. J'ai essayé avec une boucle for + compteur sans plus de résultats. Merci d'avance à ceux qui pourraient m'éclairer.
 

Efgé

XLDnaute Barbatruc
Re : collage un à un !!!

Bonjour glaine,
Une proposition:
Code:
[COLOR=blue]Sub[/COLOR] CollerExam()
Application.ScreenUpdating = [COLOR=blue]False[/COLOR]
[COLOR=blue]Dim[/COLOR] plage [COLOR=blue]As[/COLOR] Range
[COLOR=blue]Set[/COLOR] plage = Range("A2", [A2].End(xlDown))
Cells.NumberFormat = "@"
[COLOR=blue]For Each[/COLOR] C [COLOR=blue]In[/COLOR] plage
   [COLOR=blue]If Not[/COLOR] IsEmpty(C) [COLOR=blue]And Not[/COLOR] C.Value [COLOR=blue]Like[/COLOR] "0*" [COLOR=blue]Then[/COLOR]
       Range("C2").Insert Shift:=xlDown
       Range("C2").Value = C.Value
       C.ClearContents
    [COLOR=blue]End If[/COLOR]
[COLOR=blue]Next[/COLOR]
Application.ScreenUpdating = [COLOR=blue]True[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Cordialement
 

glaine

XLDnaute Junior
Re : collage un à un !!!

Merci pour vos réponses, il n' y a pas de cellules fusionnées. La réponse EFgé semble correspondre, mais le résultat est surprenant, les valeurs collées apparaissent dans un ordre qui ne correspond pas à celui de départ. Il est inversé. Je vais essayé Range("C2").Value = C.Value-1
Merci encore
 

Efgé

XLDnaute Barbatruc
Re : collage un à un !!!

Re glaine, Bonjour tototiti2008 :),

glaine, si votre macro avait tournée, elle aurai également inversée les données...
Une double proposition (possibilité de laissé les valeurs de la colonne A en place ou de les regrouper) qui met les valeurs en C dans l'ordre d'origine:
Code:
[COLOR=blue]Sub[/COLOR] CollerExam2()
Application.ScreenUpdating = [COLOR=blue]False[/COLOR]
[COLOR=blue]Dim[/COLOR] L [COLOR=blue]As Long[/COLOR], i [COLOR=blue]As Long[/COLOR]
L = Cells(Rows.Count, "A").End(xlUp).Row
Cells.NumberFormat = "@"[COLOR=green] ' Pas utile[/COLOR]
[COLOR=blue]For[/COLOR] i = L [COLOR=blue]To[/COLOR] 2 [COLOR=blue]Step[/COLOR] -1
   [COLOR=blue]If[/COLOR] Trim(Cells(i, 1).Value) <> "" [COLOR=blue]And Not[/COLOR] Cells(i, 1).Value [COLOR=blue]Like[/COLOR] "0*" [COLOR=blue]Then[/COLOR]
       Range("C2").Insert Shift:=xlDown
       Range("C2").Value = Cells(i, 1).Value
       Cells(i, 1).ClearContents[COLOR=green] '*[/COLOR]
[COLOR=green]      '*Si vous voulez retrouver les valeurs en A regroupées:[/COLOR]
[COLOR=green]      'Cells(i, 1).Delete[/COLOR]
    [COLOR=blue]End If[/COLOR]
[COLOR=blue]Next[/COLOR] i
Application.ScreenUpdating = [COLOR=blue]True[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Cordialement
 

Discussions similaires

Réponses
21
Affichages
321

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p