Colage spécial conditionné

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
 

condors.s

XLDnaute Occasionnel
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....
 

condors.s

XLDnaute Occasionnel
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
 

JNP

XLDnaute Barbatruc
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 :p...
Bonne journée :cool:
 

condors.s

XLDnaute Occasionnel
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
 

JNP

XLDnaute Barbatruc
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 :cool:
 

condors.s

XLDnaute Occasionnel
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...:mad:
 

pierrejean

XLDnaute Barbatruc
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

  • Condor.zip
    11.6 KB · Affichages: 18

JNP

XLDnaute Barbatruc
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 :cool:
 

condors.s

XLDnaute Occasionnel
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:

Discussions similaires

Réponses
3
Affichages
279
Réponses
7
Affichages
287