Boucle colonne

Fermé
xszma Messages postés 7 Date d'inscription lundi 20 mai 2019 Statut Membre Dernière intervention 13 juin 2019 - 13 juin 2019 à 14:36
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 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 !
A voir également:

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié le 13 juin 2019 à 15:38
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


1
xszma Messages postés 7 Date d'inscription lundi 20 mai 2019 Statut Membre Dernière intervention 13 juin 2019
13 juin 2019 à 16:27
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??
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
13 juin 2019 à 18:19
La recherche se fait sur la ligne 1. N'est-ce pas plutôt ça le problème ?
1