Extraire des donees a partir d'une base sur une autre feuille

PASCAL84810

XLDnaute Junior
bonjour,

je n'arrive pas à faire fonctionne ma macro, les IF ne sont pas pris en compte (fichier joint)

pourriez vous me dire pourquoi ?

merci pour votre aide
cordialement

HTML:
Sub Blocage_liv_2v7()
Dim i, j As Integer
j = 1

Sheets("Blocage liv2").Cells.Clear
Sheets("Blocage liv2").Activate
Range("A1").Value = "N° commande"
Range("B1").Value = "Date liv demandée"
Range("C1").Value = "Ref article"
Range("D1").Value = "Designation article"
Range("E1").Value = "Qté allouée"
Range("F1").Value = "RAL"
Range("G1").Value = "RAL €"
Range("H1").Value = "RAL Total €"
Range("I1").Value = "Date 1er réappro"
Range("J1").Value = "Site d'expédition"
Range("K1").Value = "Etat liv"
Range("L1").Value = "Client"

Sheets("Formulaire").Activate

a = Cells(4, 2).Value
B = Cells(4, 5).Value




For i = 2 To 9000


Sheets("Base de donnée").Activate


If Cells(i, 18).Value >= a And Cells(i, 18).Value <= B Then

    If Cells(i, 112).Value = "Autorisée" And Cells(i, 10).Value < Cells(i, 109) And Cells(i, 23).Value = "OK" And Cells(i, 39).Value <> "Non livré" Then

End If

End If
j = j + 1
Cells(i, 3).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 1).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 18).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 2).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 1).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 3).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 2).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 4).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 21).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 5).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 10).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 6).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 11).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 7).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Sheets("Base de donnée").Activate
Cells(i, 19).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 9).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 14).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 10).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 39).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 11).Select
Selection.PasteSpecial
Sheets("Base de donnée").Activate
Cells(i, 5).Select
Selection.Copy
Sheets("Blocage liv2").Activate
Cells(j, 12).Select
Selection.PasteSpecial




Next

End Sub
 

Pièces jointes

  • Classeur2LIV2FORUM.xlsm
    284 KB · Affichages: 27

Iznogood1

XLDnaute Impliqué
Re : Extraire des donees a partir d'une base sur une autre feuille

Code:
If Cells(i, 18).Value >= a And Cells(i, 18).Value <= B Then
  If Cells(i, 112).Value = "Autorisée" And Cells(i, 10).Value < Cells(i, 109) And Cells(i, 23).Value = "OK" And Cells(i, 39).Value <> "Non livré" Then

<< mets tes instructions de copie ici>>

  End If

End If
 

cathodique

XLDnaute Barbatruc
Re : Extraire des donees a partir d'une base sur une autre feuille

Bonsoir,

j'ai jeté un coup d'oeil à ton fichier, tu dis que tu veux extraire des données à partir d'une base alors que ta feuille ne pas être considérée comme une base de donnée. Pour que ça soit le cas il ne faut pas qu'il y ait de cellules vides sur la première ligne et la première colonne.

sur ta feuille la 2ème est complètement vide et à partir de la colonne AS tu as des colonnes vides. supprimes cette ligne et toutes les colonnes vides ou bien mets un titre aux colonnes.

je me suis perdu dans le rendu en feuille blocage liv2, retrouver la correspondance dans la feuille base de données.

évite les "select" et "activate", ça ne sert qu'à ralentir le code.

cordialement,

Cathodique
 

PASCAL84810

XLDnaute Junior
Re : Extraire des donees a partir d'une base sur une autre feuille

bonjour,

iznogood1,

cela fonctionne avec les IF en fin ,le plus étonnant c'est que je les avais remonté pour voir, car le 1er coup cela ne fonctionnait pas il sautait du 1er IF à "next".
merci


Cathodique,

la 2éme ligne est rempli à partir de la colonne Ag, mais je peux la supprimée,
est-ce que je peux grouper les "Selection.Copy" et les "Selection.PasteSpecial" avec une seul select et activate ?

merci

cordialement
Pascal
 

cathodique

XLDnaute Barbatruc
Re : Extraire des donees a partir d'une base sur une autre feuille

essaie comme ça
Code:
Sheets("Blocage liv2").Cells(j, 1)=Sheets("Base de donnée").Cells(i, 3)
....et la suite
tu aurais pu mettre le fichier avec le code qui fonctionne, c'est pour le partage.
 

Discussions similaires

Statistiques des forums

Discussions
312 046
Messages
2 084 844
Membres
102 686
dernier inscrit
Franck6950