Vba excel

Résolu/Fermé
steph - 24 juin 2009 à 10:59
ouistit64 Messages postés 22 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 24 juin 2009 - 24 juin 2009 à 12:05
Bonjour,

Je ne sais pas si c'est possible mais j'essais de le faire. Voici mon problème, j'ai des colonnes fixe de A à I et je souhaiterais mettre les colonnes de J à T en dessous de la dernière cellule de la colonne I sachant que certaines cellules des colonnes de J à T sont vides mais au pire je pourrais mettre un 0 pour qu'elles ne soit plus vides. Voici mon début de code mais je m'y perd un peu, si quelqu'un peut m'aider... :

 Dim mois(1 To 12) As String
mois(1) = "2009 JAN"
mois(2) = "2009 FEB"
mois(3) = "2009 MAR"
mois(4) = "2009 APR"
mois(5) = "2009 MAY"
mois(6) = "2009 JUN"
mois(7) = "2009 JUL"
mois(8) = "2009 AUG"
mois(9) = "2009 SEP"
mois(10) = "2009 OCT"
mois(11) = "2009 NOV"
mois(12) = "2009 DEC"
    
    With Range("A1").CurrentRegion
         For i = 1 To 12
            
            If i = 2 Then
Columns("T:T").Select
Selection.Copy
ActiveWindow.SmallScroll ToRight:=1
Range("U1").Select
            
        .Resize(, .Columns.Count).Select
         Next i
    End With 


Cordialement

Steph
A voir également:

8 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
24 juin 2009 à 11:11
bonjour,

il y a des erreurs et en conséquence ce code ne fonctionne pas.
tu fais :
boucle With
boucle for
test if i =2 then ' donc la boucle se fera 1 fois quand i sera égale à 2
selectionne la colonne T
copy
selectionne U1
' pas de end if donc erreur
nest i
end with

OK! je te fais pas progressé mais si ton code n'est pas "confidentiel défense"
donne-le en entier puis dis ce que tu veux faire.

A+
0
ouistit64 Messages postés 22 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 24 juin 2009
24 juin 2009 à 11:20
En fait j'ai mes colonnes de janvier à décembre et mon but c'est de mettre toutes les cellule des colonnes de février à décembre (colonne J à T) en dessous de la dernière cellule de janvier. Comme j'ai dit certaines sont vides donc je viens de faire ce code là pour mettre les cellules de vides à 0. :

Sub cellulevide()

Dim maplage As Range
Dim cellule As Range

Set maplage = Range("i2:t783")

For Each cellule In maplage
If IsEmpty(cellule) Then
cellule = "0"
End If
Next cellule

End Sub

Mais après je sais pas trop par ou commencer. Je pense qu'il faut j'arrive à dire quand la dernière cellule de la colonne I est vide alors copier/coller la colonne J de J2à J...(la dernière cellule pleine) et ainsi de suite jusqu'à décembre (colonne T).

Merci de m'aider je continue à plancher dessus
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
24 juin 2009 à 11:36
Bon je regarde!

précise ceci, as-tu janvier en colonne i et décembre en T

je comprends que tu veux mettre les valeurs des colonnes février à décembre en (J à T) en colonne I janvier
1)doivent-elles être suprimée (couper/coller)
la solution simple serait de se placer sur la dernière cellule non vide, puis avancer de 1 cellule!

Comme ça!

Range("i65535").End(xlUp).Select
selection.offset(1,0).select
0
ouistit64 Messages postés 22 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 24 juin 2009
24 juin 2009 à 11:41
oui j'ai bien janvier en colonne i et décembre en T
je regarde le code que tu m'as donné merci
0

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

Posez votre question
ouistit64 Messages postés 22 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 24 juin 2009
24 juin 2009 à 11:44
oui elle doivent être couper coller
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
24 juin 2009 à 11:57
Sub recopiedansunecolonne()


dim as integer
dim j as integer

Set maplage = Range("j2:t783")




For i = 10 To 20
For j = 2 To 783
Range("i65535").End(xlUp).Offset(1, 0).Value = Cells(j, i).Value
Cells(j, i) = ""
Next j
Next i



End Sub
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
24 juin 2009 à 12:00
Attention ce n'est pas une copie de la cellule mais sa valeur qui est réécrite.
S'il y a une formule. Aie! Aie!
0
ouistit64 Messages postés 22 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 24 juin 2009
24 juin 2009 à 12:05
Merci beaucoup ça fonctionne impécable je vous remercie beaucoup
0