A voir également:
- [VBA] copier un classeur vers un autre
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Retrouver un copier-coller android - Guide
- Windows 7 vers windows 10 - Accueil - Mise à jour
- Copier un disque dur - Guide
4 réponses
finalement j'ai trouvé une solution
maintenant j'ai une (2) autre question :
voila, parmi les colonnes que je sélectionne, déjà chaque colonne du worksheet depuis lequel on copie n'aura pas toujours le meme nombre de ligne. c'est à dire que je peux pas faire genre : range("A1:A20").select par exemple.
donc est ce qu'il y a une fonction/mot clé qui permet de sélectionner la dernière cellule contenant des données de la colonne que l'on sélectionne ?
et ma 2ème question est : comment faire pour sélectionner plusieurs colonnes a la fois lorsque celles-ci ne sont pas adjacentes ?
je voudrais sélectionner par exemple les colonnes : A, B, et P, mais sans les colonnes entre B et P.
merci pour vos réponses !!! :-)
maintenant j'ai une (2) autre question :
voila, parmi les colonnes que je sélectionne, déjà chaque colonne du worksheet depuis lequel on copie n'aura pas toujours le meme nombre de ligne. c'est à dire que je peux pas faire genre : range("A1:A20").select par exemple.
donc est ce qu'il y a une fonction/mot clé qui permet de sélectionner la dernière cellule contenant des données de la colonne que l'on sélectionne ?
et ma 2ème question est : comment faire pour sélectionner plusieurs colonnes a la fois lorsque celles-ci ne sont pas adjacentes ?
je voudrais sélectionner par exemple les colonnes : A, B, et P, mais sans les colonnes entre B et P.
merci pour vos réponses !!! :-)
salut,
ben encore une fois, merci !!!
ca marche! au final, j'obtiens pour le moment exactement ce que je voulais. :-))
j'espère que tu seras dans les parages de temps en temps, car je risque d'avoir d'autres questions, et donc de te soliciter, vu que je n'ai pas encore terminé mon projet.
et vu que dans cette entreprise, personne peut m'aider sur le VBA :-(
bon WE xjl
ben encore une fois, merci !!!
ca marche! au final, j'obtiens pour le moment exactement ce que je voulais. :-))
j'espère que tu seras dans les parages de temps en temps, car je risque d'avoir d'autres questions, et donc de te soliciter, vu que je n'ai pas encore terminé mon projet.
et vu que dans cette entreprise, personne peut m'aider sur le VBA :-(
bon WE xjl
Bonjour,
voila, j'ai un tableau de données dont je voudrais parcourir la 2è colonne pour en déduire de nouvelles données. que j'afficherai dans une autre colonne.
pour le moment à priori, lorsque je parcours le programme pas à pas, mon code permet de parcourir par ligne, donc je n'ai pas le résultat escompté.
voici mon code :
If (Cells(i, 2).Value = Cells(i - 1, 2).Value) Then nbadjacence = nbadjacence + 1
j'ai essayé de rajouter column devant cells, mais ca marche pas.
sinon, comment on fait pour mettre plusieurs conditions dans un if ??
lorsque j'en mets plusieurs, j'ai des messages incohérents du genre :
"endif without if", "next without for"
merci d'avance
voila, j'ai un tableau de données dont je voudrais parcourir la 2è colonne pour en déduire de nouvelles données. que j'afficherai dans une autre colonne.
pour le moment à priori, lorsque je parcours le programme pas à pas, mon code permet de parcourir par ligne, donc je n'ai pas le résultat escompté.
voici mon code :
If (Cells(i, 2).Value = Cells(i - 1, 2).Value) Then nbadjacence = nbadjacence + 1
j'ai essayé de rajouter column devant cells, mais ca marche pas.
sinon, comment on fait pour mettre plusieurs conditions dans un if ??
lorsque j'en mets plusieurs, j'ai des messages incohérents du genre :
"endif without if", "next without for"
merci d'avance
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
183
2 avril 2007 à 17:07
2 avril 2007 à 17:07
Salut,
la ligne que tu nous donne concerne ton if, or si tu parcours par ligne et non par colonne comme tu le voudrais, ça vient sûrement plus de ta boucle for que tu as placé avant, donc pour t'aider il nous faudrait un peu plus de code que ça...
Ensuite, pour mettre plusieurs conditions dans un if, tu peux les séparer par un or ou un and suivant ce que tu veux faire, ou alors utiliser des if imbriqués...
A toi de voir !
la ligne que tu nous donne concerne ton if, or si tu parcours par ligne et non par colonne comme tu le voudrais, ça vient sûrement plus de ta boucle for que tu as placé avant, donc pour t'aider il nous faudrait un peu plus de code que ça...
Ensuite, pour mettre plusieurs conditions dans un if, tu peux les séparer par un or ou un and suivant ce que tu veux faire, ou alors utiliser des if imbriqués...
A toi de voir !
hnok
>
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
3 avril 2007 à 00:08
3 avril 2007 à 00:08
voila le code que j'ai pour l'instant :
sub adjacence()
nbadjacence = 0
For i = 2 To 10 Columns.End(xldown)
If (Cells(i, 2).Value = Cells(i - 1, 2).Value) Then nbadjacence = nbadjacence + 1
If (Cells(i, 2).Value <> Cells(i - 1, 2).Value) Then Cells(i - 1, 4).Value = nbadjacence and nbadjacence = 0
Next i
End Sub
Si 2 cellules adjacentes ont un contenu different, je souhaite afficher le nombre de cellules au contenu identique qui viennent d'être parcourues dans chacune des lignes correspondantes de la colonne 4; éventuellement regrouper ces cellules au contenu identique dans une meme ligne sur un nouveau worksheet.
Connais tu comment parcourir la colonne ?
C peut etre 2 for imbriqués, mais je vois pas comment faire ca :-~
sub adjacence()
nbadjacence = 0
For i = 2 To 10 Columns.End(xldown)
If (Cells(i, 2).Value = Cells(i - 1, 2).Value) Then nbadjacence = nbadjacence + 1
If (Cells(i, 2).Value <> Cells(i - 1, 2).Value) Then Cells(i - 1, 4).Value = nbadjacence and nbadjacence = 0
Next i
End Sub
Si 2 cellules adjacentes ont un contenu different, je souhaite afficher le nombre de cellules au contenu identique qui viennent d'être parcourues dans chacune des lignes correspondantes de la colonne 4; éventuellement regrouper ces cellules au contenu identique dans une meme ligne sur un nouveau worksheet.
Connais tu comment parcourir la colonne ?
C peut etre 2 for imbriqués, mais je vois pas comment faire ca :-~
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
183
>
hnok
3 avril 2007 à 08:26
3 avril 2007 à 08:26
Salut,
ben en fait, non seulement il faut que tu enlèves le 10, mais il est également préférable que tu mettes un
Range("B1").End(xlDown).Count à la place de ton Columns.End(xlDown)... Au moins là t'es sûr que ça va te renvoyer le nombre de lignes entre ta case B1 et la fin de ta colonne.
Après si tu as mis "For 2 To..." je suppose que c'est parce que tu as une ligne d'en-tête dans tes colonnes, et dans ce cas tu peux remplacer B1 par B2...Sinon tu mets 1 à la place de 2 dans ton for...
ben en fait, non seulement il faut que tu enlèves le 10, mais il est également préférable que tu mettes un
Range("B1").End(xlDown).Count à la place de ton Columns.End(xlDown)... Au moins là t'es sûr que ça va te renvoyer le nombre de lignes entre ta case B1 et la fin de ta colonne.
Après si tu as mis "For 2 To..." je suppose que c'est parce que tu as une ligne d'en-tête dans tes colonnes, et dans ce cas tu peux remplacer B1 par B2...Sinon tu mets 1 à la place de 2 dans ton for...
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
183
>
hnok
3 avril 2007 à 08:31
3 avril 2007 à 08:31
J'ai cru que mon message précédent avait buggé...
Bon si la solution fonctionne, pense à cloturer le sujet ! ;-)
Bon si la solution fonctionne, pense à cloturer le sujet ! ;-)
29 mars 2007 à 15:04
Sub selec_colonnes()
Dim r1, r2, r3, myMultipleRange As Range
Set r1 = Sheets(1).Range(Range("A1"), Range("A1").End(xlDown).Address)
Set r2 = Sheets(1).Range(Range("B1"), Range("B1").End(xlDown).Address)
Set r3 = Sheets(1).Range(Range("P1"), Range("P1").End(xlDown).Address)
Set myMultipleRange = Union(r1, r2, r3)
myMultipleRange.Select
End Sub
Avec ça ça devrait marcher...
29 mars 2007 à 16:26
merci !
ca marche impec.
j'étais pas loin, j'étais en train de réfléchir comment employer cette fonction End(xldown) justement, mais je connaissais pas la fonction Union :-(
sinon, je vais profiter que tu sois dans les parages :D pour compléter mon problème.
en fait ce code marche nikel si je le met dans le sheet du fichier a partir duquel je copie les 3 colonnes en question.
Or je voudrais écrire ce meme code dans le fichier vers lequel je copie les colonnes (ce fichier est mon outil)
le problème c'est que le fichier qui contient les 3 colonnes à copier a un nom aléatoire. il va s'apeller "Book20", et si je le rouvre il s'apellera "Book21" par exemple.
donc il faudrait que par exemple, a partir de mon outil, j'active le fichier qui vient d'etre ouvert, avant d'entrer dans ce bout de code qui permet de copier les 3 colonnes.
aurais tu une idée de comment faire ca ??
(je pense qu'il doit y avoir une ligne qui commence par activate. )
30 mars 2007 à 10:16
je repassais par hasard... ;-)
Ne place pas ce code dans ta feuille mais dans un module appellé "module1" par exemple, et remplace simplement Sheets(1) par ActiveSheet dans les trois lignes et ça devrait marcher !