Code copier/coller ligne d'une feuille à une autre sous condition

benoit2602

XLDnaute Nouveau
Bonjour,

Je suis débutant en VBA et ej cherche à créer un bouton qui me permette de copier une ligne d'une feuille (Exigences minimales) vers une autre (Responsable QSE) si cette ligne vérifie une condition.
La condition se trouve dans la colonne J si le bon texte est affiché alors il faut coller cette même ligne (de B à I) sur une autre feuille.
Bien sur il faut que les lignes se collent les unes à la suite des autres sans ligne vide entre.
J'ai creer un bouton avec le code suivant
Private Sub CommandButton1_Click()
Sheets("Exigences_minimales").Activate

Dim i As Integer
i = 10
Dim j As Integer
j = 10
Do While Cells(i, 99) <> ""
If Range("$J$" & i) = "Responsable QSE" Then
Range("$B$" & i & ":$I$" & i).Copy Sheets("Responsable_QSE").Range("$B$" & j & ":$I$" & j)
j = j + 1
End If
i = i + 1

Loop

End Sub

Le problème c'est qu'Excel m'indique une erreur '9' l'indice n'appartient pas à la selection et je ne comprends pas pourquoi (je suis débutant dans le langage VBA)

Si quelqu'un pouvait m'aider ça serait cool.

Merci

Je joins le fichier en même temps
 
Dernière édition:

mromain

XLDnaute Barbatruc
Re : Code copier/coller ligne d'une feuille à une autre sous condition

bonjour,

3 petites modifs :

Private Sub CommandButton1_Click()
Sheets("Exigences minimales").Activate

Dim i As Integer
i = 10
Dim j As Integer
j = 10
Do While Cells(i, 10) <> ""
If Range("$J$" & i) = "Responsable QSE" Then
Range("$B$" & i & ":$I$" & i).Copy Sheets("Responsable QSE").Range("$B$" & j & ":$I$" & j)
j = j + 1
End If
i = i + 1

Loop

End Sub


ça a l'air de fonctionner

a+
 

JNP

XLDnaute Barbatruc
Re : Code copier/coller ligne d'une feuille à une autre sous condition

Bonjour Benoit2602 :),
Ton code corrigé
Code:
Private Sub CommandButton1_Click()
   Sheets("Exigences minimales").Activate
Dim i As Integer
i = 10
Dim j As Integer
j = 10
Do While Cells(i, 10) <> ""
If Range("J" & i) = "Responsable QSE" Then
Range("B" & i & ":I" & i).Copy Sheets("Responsable QSE").Range("B" & j & ":I" & j)
j = j + 1
End If
i = i + 1
Loop
End Sub
Bonne journée :cool:
Edit : Bonjour MRomain
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
368

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614