SélectionnerDesCellulesNonContingues

M

Moa

Guest
Salut à Toutes et tous !

Voilà, je cherche à faire une macro, pour sélectionner (et puis copier/coller)des valeurs qui se trouvent sur la même ligne mais avec des cellules vides.

Exemple : si je mets mon curseur dans la cellule

A7 ou B7, il faudrait que ma macro, aille me sélectionner, automatiquement à droite, toutes les cellules contenant une valeur, ou au mieux une valeur, choisie.

J'ai déjà commencé à chercher, mais, je rame un peu, alors une aide serait vraiment la bienvenue.

Merci beaucoup d'avance...

@ +

Moa
 
M

Moa

Guest
Merci André,

Mais le problème réel, est de dire de partir à droite du curseur, pour commencer la sélection ou éventuellement de partir d'une cellule prédéfinie.

Car avec "Selection.SpecialCells(xlCellTypeConstants, 23).Select", je sélectionne toute la ligne.

Merci, c'est déjà un début.

@ +

Moa
 
M

Mytå

Guest
salut Moa et André

vite fait avec une macro

Sub copiersansvide()
Dim a As Integer, b As Integer, c As Integer
Dim text As String

a = ActiveCell.Row
b = ActiveCell.Column
c = Range("iv" & a).End(xlToLeft).Column
text = ""

For i = b + 1 To c
If Cells(a, i) <> "" Then
If text <> "" Then text = text & ","
If i < 27 Then
d = Chr$(64 + i)
text = text & Chr$(64 + i) & a
Else
e = Int(i / 26): f = i - e * 26
text = text & Chr$(64 + e) & Chr$(64 + f) & a
End If
End If
Next i

Range("" & text & "").Select
Selection.Copy
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

End Sub

a suivre Mytå
 
M

Moa

Guest
Merci beaucoup Mytå, comme d'hab, ça marche bien.

J'ai modifié la fin de la macro, en ce qui concerne la partie recopie.

Juste une question.N'est-il pas possible de faire plus simple ?

Car je ne comprends pas le cheminement de ta macro, et il me sera difficile de la modifier par la suite.

Enfin bref, c'était juste au cas où.

Gros merci à toi

@ +

Moa
 
M

Mytå

Guest
salut moa

For i = b + 1 To c
If Cells(a, i) <> "" Then
If text <> "" Then text = text & ","
If i < 27 Then
d = Chr$(64 + i)
text = text & Chr$(64 + i) & a
Else
e = Int(i / 26): f = i - e * 26
text = text & Chr$(64 + e) & Chr$(64 + f) & a
End If
End If
Next i

Cette section qui doit etre dur a comprendre pourtant bien simple
je convertit le numero de la colone en lettre soit A=65, B=66....
pour cela le 64+i

si autre question te genes pas

Mytå
 
M

Mytå

Guest
re re moa

une petite correction

Dim a As Integer, b As Integer, c As Integer

a changer pour

Dim a As Long, b As Byte, c As Byte

car a peut avoir comme valeur 65535

tandis que b et c le max 255 (la colonne "IV")

Mytå
 

Discussions similaires

Réponses
4
Affichages
204
Réponses
31
Affichages
1 K

Statistiques des forums

Discussions
312 154
Messages
2 085 810
Membres
102 986
dernier inscrit
nonoblez