Boucle colonne

Messages postés
7
Date d'inscription
lundi 20 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
- - Dernière réponse : ThauTheme
Messages postés
4582
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
14 octobre 2019
- 13 juin 2019 à 18:19
Bonjour,

J'aimerai faire une boucle qui copie colle d'une feuille vers une autre feuille, les colonnes dont j'ai besoin.
Voici par exemple comment j'ai démarrer ma boucle :


Do While Cells(i, j) <> "N°Produit"
If j < 30 Then
j = j + 1
Else
Cells(i, j).Select
Range(Selection, Selection.End(xlDown)).Copy
j = 15
End If
Loop


Je balaye le nom de la colonne que je veux, lorsque je la trouve je la copie. Mon problème est que je ne sais pas comment la coller sur une autre feuille...
De plus mon code sera surement trop redondant ? Car j'ai besoin d'une dizaine de colonnes. En effet ma première feuille contient une cinquantaine de colonnes (qui peuvent varier), mais seulement une dizaine sont nécessaires pour mon analyse sur la seconde feuille. Je fait ce code car il se pourrait que plus tard, j'ai besoin d'autre colonnes de la première feuille et donc il me suffira d'ajouter quelque lignes pour rajouter la colonne dont j'aurai besoin.

Je ne sais pas si le problème est clair ... Je débute ne soyez pas intransigeant please :'(
Si jamais vous avez besoin d'éclaircissement, n'hésitez pas!

Merci bonne journée!

Merci !
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
4582
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
14 octobre 2019
117
1
Merci
Bonjour Xszma, bonjour le forum,

Le code ci-dessous te permet de taper un nom puis de copier/coller la colonne correspondante. Regarde si ça te convient :
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)
Dim R As Range 'déclare la variable R (Recherche)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim CD As Integer 'déclare la variable CD (Colonne de Destination)

Set OS = Worksheets("Feuil1") 'définit l'onglet source OS (à adapter à ton cas)
Set OD = Worksheets("Feuil2") 'définit l'onglet destination OD (à adapter à ton cas)
deb: 'étiquette
BE = Application.InputBox("Taper le titre de la colonne à rechercher.", "TITRE", Type:=2) 'définit la boîte d'entrée BE
If BE = "" Or BE = False Then Exit Sub 'si non renseignée ou bouton"[Annuler], sort de la procédure
Set R = OS.Rows(1).Find(BE, , xlValues, xlWhole) 'définit la recherche R (recherche le mot entier de la boîte d'entrée dans la ligne 1 de l'onglet source)
If R Is Nothing Then 'condition : si aucune occurrence trouvée
    MsgBox "Titre non trouvé !" 'message
    Exit Sub 'sort de la procédure
End If 'fin de la condition
COL = R.Column 'définit la colonne COL
'définit la colonne de destination CD (colonne de la première cellule vide de l'onglet destination)
CD = IIf(OD.Cells(1, 1) = "", 1, OD.Cells(1, Application.Columns.Count).End(xlToLeft).Column + 1)
OS.Columns(COL).Copy OD.Cells(1, CD) 'copie la colonne COL et la colle dans la colonne CD
If MsgBox("Nouveau titre à chercher ?", vbYesNo) = vbYes Then GoTo deb 'si "Oui"au message retourne à l'étiquette "deb"
End Sub


À plus,
ThauTheme

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 64599 internautes nous ont dit merci ce mois-ci

xszma
Messages postés
7
Date d'inscription
lundi 20 mai 2019
Statut
Membre
Dernière intervention
13 juin 2019
-
Le code est super propre, merci!!
Le problème c'est que lorsque je met le titre d'une colonne du tableau source cela me met Titre non trouvé !
Y'aurait-il pas une procédure qui permet de faire comme tu m'as montré sans devoir taper le titre des colonnes??
Commenter la réponse de ThauTheme
Messages postés
4582
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
14 octobre 2019
117
1
Merci
La recherche se fait sur la ligne 1. N'est-ce pas plutôt ça le problème ?

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 64599 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ThauTheme