Copier les valeurs de colonnes correspondantes aux lignes "vrai"
Styla27
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
Styla27 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
Styla27 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
Bonjour et merci d'avance pour votre aide.
Nous avons les colonnes A, B, C dont plusieurs lignes.
Je veux faire ce qui suit dans une cellule (H5 par exemple) :
Si plusieurs lignes de la colonne C contient le mot « oui », copier les valeurs des colonnes A et B des lignes correspondantes. (mon tableau possède beaucoup de colonnes, ceci est un exemple)
A B C
1 Test1 Test2 Oui
2 Test3 Test4 Oui
3 Test5 Test6 Non
4 Test6 Test7 Oui
…
Résultat dans H5 : Test1 Test2 Test3 Test4 Test6 Test7
Je ne veux pas utiliser cette fonction :
Car il y a plus d’une centaine de lignes !
Nous avons les colonnes A, B, C dont plusieurs lignes.
Je veux faire ce qui suit dans une cellule (H5 par exemple) :
Si plusieurs lignes de la colonne C contient le mot « oui », copier les valeurs des colonnes A et B des lignes correspondantes. (mon tableau possède beaucoup de colonnes, ceci est un exemple)
A B C
1 Test1 Test2 Oui
2 Test3 Test4 Oui
3 Test5 Test6 Non
4 Test6 Test7 Oui
…
Résultat dans H5 : Test1 Test2 Test3 Test4 Test6 Test7
Je ne veux pas utiliser cette fonction :
=SI(C1="Oui";A1" "B1;" ")...
Car il y a plus d’une centaine de lignes !
A voir également:
- Copier les valeurs de colonnes correspondantes aux lignes "vrai"
- Comment faire des colonnes sur word - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Partage de photos en ligne - Guide
1 réponse
En VBA :
Sub test()
Dim DernLigne as Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 to DernLigne
If Cells(i,3).value ="Oui" Then
If Range("H5").value = "" Then
Range("H5").value = Cells(i,1).value & " " & Cells(i,2).value
Else
Range("H5").value = Range("H5").value & " " & Cells(i,1).value & " " & Cells(i,2).value
End If
End If
Next i
End Sub
Mais je n'arrive pas à mettre exécution ma formule avec le code VBA que j'ai adapté :
Juste pour être sûre :
Est-ce qu'il faut que j'ai dans la colonne A, tous les chiffres dans l'ordre de 1 à... selon les lignes ? Car à la base, j'avais mis les chiffres pour l'exemple des lignes Excel. En tout cas, j'ai essayé, et ça ne arche tout de même pas.
Merci encore de votre aide. C'est pour un projet très important !
1) ajoutez la référence de la feuille comme vous l'avez fait pour le reste du code :
2) cette variable permet d'obtenir le nombre de lignes à traiter, je me suis basé sur la colonne A d'après votre exemple mais en effet le but est de prendre une colonne où chaque ligne est renseignée sans exception si la ligne est à traiter.
Sinon, vous avez oublié de préciser la feuille pour la ligne
Je ne veux pas trop abusée mais vous me sauvez la mise.
Alors j'ai fait :
Mais Excel me dit qu'il y a une erreur :
Erreur d'exécution " -2147352571 (80020005)) " :
L'élément portant ce nom est introuvable.
et me montre après débogage cette ligne en surbrillance :
Du coup, est-ce que c'est Range "A", le nom de la colonne ou c'est la colonne A de Excel ?
si vous me dites :
"le but est de prendre une colonne où chaque ligne est renseignée sans exception si la ligne est à traiter. " = Est-ce que je dois faire autre chose au final ? Je suis un peu perdue.
Au final j'ai rajouté une colonne et à l'en-tête j'ai écrit A (car range "A") et j'ai décalé d'une colonne pour les références dans le code. Exemple (i,11) --> (i,12)
la bulle d'information m'indique :
DernLign = 0
Quand je parle de bulle, c'est comme quand vous allez sur la croix de la fenêtre et que lorsque vous attendez, c'est écrit Fermer dans la bulle. :)
Bref utilisez :