Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Colage spécial conditionné

  • Initiateur de la discussion Initiateur de la discussion condors.s
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

condors.s

XLDnaute Occasionnel
Bonjour le forum.
Je cherche une solution pour faire un colage spécial conditionné.
J'ai sur mon fichier 2 onglets.
Sur chaque onglet 1 tableau. Il s'agit des meme sur les 2 onglets (meme taille, meme position sur la page,...).

Je souhaiterais copier les valeur du tableau 2 dans le 1 en ne prenant que les cellule dont le résultat est compris entre 1 et 9.

Merci à tous
 
Re : Colage spécial conditionné

Bonjour le forum.
Désolé si il vous manque de l'inspiration.

En fait je suis au point pour la commande sur le copier coller (normal c'est assez basique), mais complètement paumé quand à rajouter une condition....
 
Re : Colage spécial conditionné

J'ai un peu avancé mais je ne suis pas sur de la méthode.
J'ai écris un code pour 1 cellule et je me disait que je pouvait le dupliquer autant de fois qu'il y a de cellules (mais pas très optimale car il y en a près de 80...

Voilà le code écrit (qui ne marche pas d'ailleur)

Code:
Sub remplissage()
if range("b2").value > 1
if range("b2").value < 9
If Sheets("Feuil1").Range("b2").Value = "" Then
Range("b2").Select
Selection.Copy
Sheets("Feuil1").Select
Range("b2").Select
Selection.PasteSpecial Paste:=xlPasteValues, _
End If
End Sub
 
Re : Colage spécial conditionné

Bonjour Condors.s 🙂,
Code:
Sub Test()
Dim Ligne As Integer, Colonne As Integer
With Sheets("Feuil1")
For Colonne = 2 To 8
For Ligne = 2 To 21
If .Cells(Ligne, Colonne) > 1 And .Cells(Ligne, Colonne) < 9 Then
Sheets("Feuil2").Cells(Ligne, Colonne) = .Cells(Ligne, Colonne)
End If
Next Ligne
Next Colonne
End With
End Sub
a plus de chance de marcher 😛...
Bonne journée 😎
 
Re : Colage spécial conditionné

Merci JNP pour ce petit pas pour toi et bon de géant pour mon fichier.

Deux petits soucis :
- Seule la 1ère cellule correspondant aux conditions marche, mais la macro ne se répete pas jusqu'a avoir parcourru tout le tableau
- Je voudrais que si dans l'onglet 2 une cellule est déjà remplie, celle-ci ne soit pas écrassé, peut on ajouter un 2eme and reprenant une condition dépendant de l'onglet (=vide)?

Merci beaucoup
 
Re : Colage spécial conditionné

Re 🙂,
- Seule la 1ère cellule correspondant aux conditions marche, mais la macro ne se répete pas jusqu'a avoir parcourru tout le tableau
As-tu modifié les lignes et colonnes dans la macro ?
Code:
For Colonne = [COLOR=red][B]2 To 8[/B][/COLOR]
For Ligne = [COLOR=red][B]2 To 21[/B][/COLOR]
- Je voudrais que si dans l'onglet 2 une cellule est déjà remplie, celle-ci ne soit pas écrassé, peut on ajouter un 2eme and reprenant une condition dépendant de l'onglet (=vide)?
Code:
If [COLOR=red][B]Sheets("Feuil2").Cells(Ligne, Colonne) <> "" And[/B][/COLOR] _
   .Cells(Ligne, Colonne) > 1 And .Cells(Ligne, Colonne) < 9 Then
Bon courage 😎
 
Re : Colage spécial conditionné

J'ai modifié le code comme ca :

Code:
Sub Test()
Dim Ligne As Integer, Colonne As Integer
With Sheets("Feuil2")
For Colonne = 2 To 10
For Ligne = 2 To 10
If Sheets("Feuil1").Cells(Ligne, Colonne) <> "" And Sheets("Feuil2").Cells(Ligne, Colonne) > 1 And Sheets("Feuil2").Cells(Ligne, Colonne) < 9 Then
End If
Next Ligne
Next Colonne
End With
End Sub

Maintenant ca ne marche plus du tout...😡
 
Re : Colage spécial conditionné

Bonjour Condor

Salut JNP

Un essai

Code:
Sub test()
For Each cel In Sheets("Feuil1").UsedRange
  If cel.Value > 0 And cel.Value < 10 Then
    cel.Copy Destination:=Sheets("Feuil2").Range(cel.Address)
  End If
Next cel
Sheets("Feuil2").Select
End Sub
 

Pièces jointes

Re : Colage spécial conditionné

Re 🙂,
Salut Pierre-Jean 😉,
Un petit dérappage de ma part
Code:
Sub Test()
Dim Ligne As Integer, Colonne As Integer
With Sheets("Feuil2")
For Colonne = 2 To 10
For Ligne = 2 To 10
If Sheets("Feuil1").Cells(Ligne, Colonne).Value [COLOR=red][B]=[/B][/COLOR] "" And .Cells(Ligne, Colonne).Value >= 1 _
    And .Cells(Ligne, Colonne).Value <= 9 Then
Sheets("Feuil1").Cells(Ligne, Colonne).Value = .Cells(Ligne, Colonne).Value
End If
Next Ligne
Next Colonne
End With
End Sub
Bonne soirée 😎
 
Re : Colage spécial conditionné

En fait j'ai parlé un peu vite.
- Je voudrais que la macro de pierrejean ne fasse qu'un collage valeur
- Ne le faire que pour les cellules non vide de la feuille1
- le ne faire que pour les cellules B2:J10

Merci beaucoup pour votre aide
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
23
Affichages
668
  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
498
Réponses
3
Affichages
233
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…