définition de variables

netten

XLDnaute Junior
Bonjour tout le monde,

Alors voilà, je cherche à faire quelques lignes me permetant de faire un copier coller à partir d'une cellule IL21 ou je rentre une donnée et d'une liste déroulante IN21 qui permet de guider l'emplacement du collage.

La fonction serait définit en 4 points :

1. Définir les variables :

x serait une variable tel que A351 < x < IR351

y serait une variable qui reprend la valeur de x mais uniquement de la colonne, soit
A < y < IR

En somme si la variable x est égale à EG351, y=IR


2. Conditions :

Si la valeur dans la liste déroulante IN21 = x alors on poursuit la fonction, sinon rien ne se passe, en fait les valeur de x sont les mêmes que dans ma liste déroulante, donc en principe, il y aura toujours une égalité.

losque IN21 = x alors on copie la cellule IL21 ou j'ai rentré ma donnée.


3. Décalage :

le collage se fera dans une colonne, et donc comme il est possible que des données soient coller dans cette même colonne, j'aimerais qu'elles se mettent bout à bout, soit la fonction suivante :

ligne1
DoWhile Worksheet("Feuil3").Range(x).Cells(ligne1,1)<>""
ligne = ligne+1


4. Collage :

Le collage se fait donc dans la colonne y & ligne + 350, j'ai donc en principe la fonction suivante :

Worksheet("Feuil3").Range(y & ligne + 350).Paste




Enfin, lorsque l'opération est terminée, la cellule IL21 est effacée puis la cellule IL23 est sélectionnée.


Je vous remercie de votre aide :)
 

netten

XLDnaute Junior
Re : définition de variables

Bah en fait, je ne sais pas du tout comment définir mes variables d'un point de vue écriture. Déjà avec cette première indication, j'arriverais à faire un premier code. Pour le fichier il est honnêtement très volumineux du fait qu'il y a plein de données. Je vais essayer de le réduire. Si vous m'aidez à définir les deux variable, je pense que le gros sera fait.

Ainsi que pour les intégrer dans mon Range, c'est à dire comme je dois la noter dans mes fonctions :

Range(y & ligne+350) ?
Range("y" & ligne + 350) ?

merci beaucoup
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : définition de variables

Bonjour le fil, bonjour le forum,

Si j'ai bien compris tes deux variables représentent des colonnes. Donc on pourrait les déclarer comme Byte :
Code:
Dim x As Byte, Dim y As Byte
et pour les atteindre :
Code:
Cells(ligne+350, x)... (Select, Value, etc)
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : définition de variables

Re, bonjour Robert :)

avec un peu de retard...
Code:
'déclaration des variables
Dim l As Long, c As Integer
c = 25 'initialisation d'une variable
l = 250
'utilisation des variables dans cells
'le 1er élément est le numéro de ligne
', le 2ème le numéro de colonne
Cells(l + 20, c).Select
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : définition de variables

Bon jour le fil, bonjour le forum,

Désolé Netten mais pour moi, de A351 à IR351, il y a des colonnes et pas des lignes puisque tu restes sur la ligne 351 !!! Ce n'est pas clair... la variable reste une colonne de 1 (colonne A) à 252 (colonne IR).
Sinon l'explication de Pierrot devrait te satisfaire.
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : définition de variables

Bonjour le fil, bonjour le forum,

Désolé Netten mais je crois que tu confonds ligne et colonne... Tu dis :
1. Je rentre une donnée en D3
2. je choisis dans ma liste déroulante l'endroit ou je veux le copier coller
3. Je clique sur ACTION1 puis la donnée en D3 se retrouve dans la colonne B à partir de la ligne 7 sauf si il y a déjà une donnée dans quel cas le décalage se fait vers le bas.
4. Après être coller, la cellule D3 est effacée.
Par exemple, bonjour doit aller dans la colonne 567 ou ("E" & ligne + 7), et si dans le temps je veux agélement ajouter aurevoir, il se mettra automatiquement dans la cellule qui suit donc E8

Dans la version 2003 il n'y a que 256 colonnes (de A à IV) comment mettre "bonjour" dans la colonne 567 ?? Je ne comprends pas non plus ce qu'est ce ligne...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : définition de variables

Bonjour le fil, bonjour le forum,

Ooops pardon je viens de comprendre... Ok je regarde.

Édition :

Essaie comme ça :

Code:
Sub ACTION2()
Dim col As Byte 'déclare la variable col (COLonne)
 
'définit la variable col (Recherche de la valeur de E4 dans la ligne 6 et recupère le numéro de colonne)
col = Rows(6).Find(Range("E4").Value, , xlValues, xlWhole).Column
'place la valeur de D4 dans la première ligne vide de la colonne col
Cells(65536, col).End(xlUp).Offset(1, 0).Value = Range("D4").Value
Range("D4").ClearContents 'efface D4
End Sub
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : définition de variables

Bonjour le fil, bonjour le forum,

La macro que je t'ai proposée dans mon post précédent fonctionne aussi avec ton nouvel exemple. Mais franchement si tu avais commencé par ça on aurait gagné beaucoup de temps !...
 

netten

XLDnaute Junior
Re : définition de variables

yyyyyeeeeeeeaaaaaaaahhhhhhhhh !!!!!

merci beaucoup, je retiens que pour la prochaine fois, je commence avec un fichier joint. Je test sur mon gros fichier excel et je te dis quoi, mais à priori c'est bon

Tu es un chef :D
 

netten

XLDnaute Junior
Re : définition de variables

Bon alors il me mets code erreur 91, variable objet ou variable de bloc With non définie.

J'ai juste changé ça :

Sub nouvelensemble()

Dim col As Byte 'déclare la variable col (COLonne)

'définit la variable col (Recherche de la valeur de IN21 dans la ligne 351 et recupère le numéro de colonne)
col = Rows(351).Find(Range("IN21").Value, , xlValues, xlWhole).Column
'place la valeur de IL21 dans la première ligne vide de la colonne col
Cells(65536, col).End(xlUp).Offset(1, 0).Value = Range("IL21").Value
Range("IL21").ClearContents 'efface D4

End Sub
 

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz