[VBA-EXCEL] Copier plage de cellules aléatoir

Fermé
Alecine - 22 mai 2008 à 09:25
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 22 mai 2008 à 13:39
Bonjour,
Voila j'ai de petites compétences en VBA et j'aimerais créer un bouton avec une macro me permettant de copier une plage de valeur non définie (par exemple de A1 à EXX, "XX" étant une valeur inconnue) dans une autre feuille
Donc je pense qu'il faudrait une boucle qui cherche tant qu'une case contient quelque chose et qui s'arrete lorsque c'est vide.
Une fois ceci fait la plage de cellues serait copiée et envoyée vers une nouvelle feuille (ou bien une feuille existante)

Pensez vous que cela est réalisable facilement ?
Je connais les bases mais n'ai pas assez d'experience encore pour faire cela !
Je comprend tout de meme les codes !

Merci d'avance a vous en éspérant avoir une réponse !!

8 réponses

Je me disais bien aussi que ca n'enthousiasmerait pas grand monde ^^
0
salut!
tu dois faire une boucle
do

loop until <condition>
ou<condition> serait une case vide
pour la fonction qui copie, je sais plus, désolée.
mon aide aura était assez rudimentaire!...
0
Pour copier ca va j'ai fais avec les moyens du bord voila ce que j'ai :
Je fais une création de feuille suivi d'un copier coller de A65 jusqu'a ma case active (cette derniere case j'aimerais qu'elle soit trouvée tte seule ^^)
Et la plage sélectionnée est copiée dans la feuille crée au préalable

'Création d'une nouvelle feuille
Sheets("Projection").Select
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "Nouvelle"
'Copier/Coller des cellules
Sheets("Projection").Select
Range("A65", ActiveCell).Select
Selection.Copy
Sheets("Nouvelle").Select
Range("A1").Select
ActiveSheet.Paste



End Sub
0
Personne ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
22 mai 2008 à 11:49
bonjour,

Pour trouver la dernière cellule non vide d'une ligne tu peux faire comme ceci :
Dim i As Long
i = 1
While Cells(65,i).value <> ""
i = i + 1
Wend
MsgBox "La dernière cellule non vide de la ligne 65 est : " & i - 1


En espérant que ça puisse t'aider.

;o)

polux
0

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

Posez votre question
Oui en effet ca peut m'aider !
Mais la recherche serait plus pertinente en cherchant dans la colonne, ici ma colonne C
Il ne doit pas y avoir bcp de modifs je pense
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
22 mai 2008 à 12:22
re,

Non c'est facile.
Dans Cells(65, i), le premier chiffre (65) c'est la ligne et le deuxième (i) c'est la colonne. Il suffit de donner à i la valeur numérique de la colonne. C'est 3 pour la colonne C ... et mettre i = 3 avant le while ...

;o)

polux
0
Merci je vais essayer d'avancer dans ce sens ^^
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
22 mai 2008 à 13:39
de rien,

;o)
0