OVH Cloud OVH Cloud

Macro Deplacer un lot de cellule

1 réponse
Avatar
tinou
Bonjour, j'aimerai créer une macro qui
copie un lot de cellule et le colle a un endroit donné.

L'explication ci dessous, et à lire avec le fichier mep.pdf joint
http://cjoint.com/?gxlF44nEq1

- j'ouvre mon fichier adresse.
il contient 1 feuille (nommée differement selon fichier).
le nombre de colonne et de ligne varie selon le fichier.
- je fais un Alt+F8 et execute 'perso.xls'!Imposition. (la macro que
j'aimerai créer).
- un userform "Imposition" apparait. (voir fichier pdf joint).
Dans le Label Nb d'adresse, il apparait automatiquement
le nombre total d'adresse (= nb total de ligne).
le curseur est place dans le textbox nb de pose (en attente d'une reponse)
- je rentre le nombre desiré... et clique sur le bouton "Calculer".
Sous le Label nb de feuille, le resultat de la division entre
" nb d'adresse / nb de pose " apparait arrondit à 2 chiffres apres la virgule.
Ce label est grisé.
Le label nb de feuille est le resultat de la division arrondit a l'entier
superieur !
Le bouton "Lancer" prend le focus.

J'ai donc :
* mon nb d'adresse
* mon nombre de pose
* mon nombre (entier) de feuille
Ce sont les 3 variables qui definiront le decoupage de mon fichier d'origine.

- Je clique sur "Lancer".
Une nouvelle feuille 'Compo" se crée.
Le decoupage se realise...
Fin

Pour plus d'info sur le decoupage, merci
de regarder le fichier mep.pdf

Merci d'avance pour votre aide...

Tinou

1 réponse

Avatar
Daniel
Bonjour.
Essaie dans le code du bouton (largement non testé) :

Private Sub Calculer_Click()
Dim NbDAdresse As Long, NbDePose As Long
Dim NomFeuille As String, NbDeFeuille As Long
Dim NbCol As Integer, Num As Integer
Dim Ligne As Integer
NbDAdresse = TextBox1.Value '*** modifier le nom
NbDePose = TextBox2.Value '*** modifier le nom
NbDeFeuille = TextBox3.Value '*** modifier le nom
Unload Imposition
NomFeuille = ActiveSheet.Name
NbCol = Range("IV1").End(xlToLeft).Column
Sheets.Add.Name = "Compo"
Sheets(NomFeuille).Select
Num = 1
Ligne = 1
For i = 1 To NbDePose
Sheets(NomFeuille).Range(Cells(Ligne, 1), Cells(Ligne +
NbDeFeuille - 1, Num + NbCol - 1)).Copy _
Sheets("Compo").Cells(1, Num)
Num = Num + NbCol
Ligne = Ligne + NbDeFeuille
Next i
End Sub

Cordialement.
Daniel
"tinou" a écrit dans le message de news:

Bonjour, j'aimerai créer une macro qui
copie un lot de cellule et le colle a un endroit donné.

L'explication ci dessous, et à lire avec le fichier mep.pdf joint
http://cjoint.com/?gxlF44nEq1

- j'ouvre mon fichier adresse.
il contient 1 feuille (nommée differement selon fichier).
le nombre de colonne et de ligne varie selon le fichier.
- je fais un Alt+F8 et execute 'perso.xls'!Imposition. (la macro que
j'aimerai créer).
- un userform "Imposition" apparait. (voir fichier pdf joint).
Dans le Label Nb d'adresse, il apparait automatiquement
le nombre total d'adresse (= nb total de ligne).
le curseur est place dans le textbox nb de pose (en attente d'une reponse)
- je rentre le nombre desiré... et clique sur le bouton "Calculer".
Sous le Label nb de feuille, le resultat de la division entre
" nb d'adresse / nb de pose " apparait arrondit à 2 chiffres apres la
virgule.
Ce label est grisé.
Le label nb de feuille est le resultat de la division arrondit a l'entier
superieur !
Le bouton "Lancer" prend le focus.

J'ai donc :
* mon nb d'adresse
* mon nombre de pose
* mon nombre (entier) de feuille
Ce sont les 3 variables qui definiront le decoupage de mon fichier
d'origine.

- Je clique sur "Lancer".
Une nouvelle feuille 'Compo" se crée.
Le decoupage se realise...
Fin

Pour plus d'info sur le decoupage, merci
de regarder le fichier mep.pdf

Merci d'avance pour votre aide...

Tinou