Problème code VBA

Fermé
totodor Messages postés 9 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 4 juin 2013 - 21 mai 2013 à 11:27
totodor Messages postés 9 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 4 juin 2013 - 21 mai 2013 à 13:46
Bonjour le forum,

Je n'arrive pas à créer un code VBA. En effet, j'aurais besoin de copier un certain nombre de cellules d'une ligne dans une autre feuille si une cellule de cette ligne contient un nom. Je m'explique : par exemple copier B3, C3, D3 et H3 si AX3 contient "validé" et les coller dans une autre feuille et ainsi de suite si pour toute la feuille initiale.
J'ai pas mal cherché dans le forum mais j'ai trouvé uniquement des copies de la ligne entière, alors que moi je n'ai pas besoin.
Merci par avance.

Bonne semaine
A voir également:

5 réponses

Normad Messages postés 112 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 10 juin 2015 39
21 mai 2013 à 11:50
Sub Copie()
    Dim Ligne As Long
    'Boucle de la ligne 1 à la ligne 10 (changer 10 si jamais...)
    For Ligne = 1 To 10
        'Changer le nom Feuil1 avec le nom de la feuille contenant les données à copier
        If Sheets("Feuil1").Range("AX" & Ligne).Value = "validé" Then
            'Changer le nom Feuil2 avec le nom de la feuille où copier les données
            With Sheets("Feuil2")
                'SI feuil1(AX1) = "validé", copie Feuil1(B1:C1) sur Feuil2(B1:C1)
                'idem avec AX2, AX3...
                .Range("B" & Ligne) = Sheets("Feuil1").Range("B" & Ligne)
                .Range("C" & Ligne) = Sheets("Feuil1").Range("C" & Ligne)
                .Range("D" & Ligne) = Sheets("Feuil1").Range("D" & Ligne)
            End With
        End If
    Next Ligne
End Sub
0
totodor Messages postés 9 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 4 juin 2013
21 mai 2013 à 12:10
Merci bcp Normad,

Ca marche très bien sauf que je me retrouve avec plein de lignes et de colonnes vides. En effet, les cellules copiées conservent leurs emplacement initial dans la nouvelle feuille. Est-ce qu'il y aurait un moyen de les coller dans des lignes et des colonnes qui s'achèvent ou de rajouter un code VBA qui va supprimer les lignes et les colonnes vides?

Merci encore.
0
totodor Messages postés 9 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 4 juin 2013
21 mai 2013 à 12:21
Du coup, j'ai en tout 7 celluces à copier ( B, C, H, I, J, V et X), est-ce que je peux les copier dans les colonnes de B à H dans la nouvelle feuille?
0
Normad Messages postés 112 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 10 juin 2015 39
21 mai 2013 à 13:37
Désolé, mais c'est souvent le problème quand une question n'est pas suffisamment précise et sans fichier exemple: Ma réponse correspondait à ma compréhension de la question initiale....
L'idée n'est pas te faire tout ton code avec des questions qui viendrons encore peut-être ensuite, mais de te donner la base.

Pour la ligne où copier, utilises une deuxième variable Ligne2 que tu indexes quand elle est utilisée uniquement, ça donnera ensuite ça pour la reprise des données :

.Range("B" & Ligne2) = Sheets("Feuil1").Range("B" & Ligne)

Pour reprendre d'autres cellules, ajoutes les lignes comme celle ci-dessus correspondantes et si tu ne veux pas mettre dans la même colonne, change la lettre de la 1ère partie
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
totodor Messages postés 9 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 4 juin 2013
21 mai 2013 à 13:46
Merci bcp,
Désolé pour la mauvaise précision de la question, je n'ai pas encore l'habitude de bien formuler une demande.

Merci et bonne journée,
0