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

erreur VBA

Dangdang

XLDnaute Nouveau
Bonjour,
Je fais appel de votre aide. Mon code plante dès le début
Sheets(2).Range("C7").Select

Sub Saisi_AutoCde()

Application.ScreenUpdating = False 'est primordiale si l'on veut gagner afin d'optimiser lors, du traitement
'en écriture sur des Ranges ou sur des Manipulation de Feuilles.

Dim Cde As Variant
Dim MaValeur As Variant
Dim MaPlage As Range
Dim MaColonne As Single
Dim i As Variant
Dim x As Integer
Dim nbligne As Integer
Dim Dte As String

'Données pour la recherchev
MaValeur = Sheets(2).Range("B2") 'ma valeur de recherchev
Set MaPlage = Sheets(3).Range("A:C") 'mes colonnes de recherchev de l'onglet "EQV_DEST"
MaColonne = 3 'ma recherchev se fait sur la 3e colonne
ValeurProche = False ' valeur faux



Sheets(2).Range("C7").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Copy Sheets(1).Range("P2")

Sheets(2).Range("D7").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Copy Sheets(1).Range("S2")

Sheets(2).Range("E7").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Copy Sheets(1).Range("Q2")

If IsError(Application.VLookup(MaValeur, MaPlage, MaColonne, ValeurProche)) Then
MsgBox "Le code destinataire de la Cde client est inconnue dans l'onglet du tableau EQV_DEST"

Else
i = Application.VLookup(MaValeur, MaPlage, MaColonne, ValeurProche)
End If
 
Solution
Bonsoir, Merci mille milles milles fois à tous pour votre temps. J'ai corrigé et en effet en codant la selection de la feuille voulu, cela fonctionne (cf réponse Dranreb). Maix c'est etonnant, VBA est une grande galaxie parfois incompréhensible

Jacky67

XLDnaute Barbatruc
Bonjour,
Je fais appel de votre aide. Mon code plante dès le début
Sheets(2).Range("C7").Select
Bonjour à tous
Il est inutile de sélectionner une cellule pour faire une copie
Sans classeur et sans code complet, j'utiliserais ce genre de code
VB:
Sub Saisi_AutoCde()
'-----------
'----------

    With Feuil2    'codename de la feuille 2
        .Range("C7:c" & .Cells(.Rows.Count, "c").End(xlUp).Row).Copy
        Feuil1.Range("P2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        .Range("d7:d" & .Cells(.Rows.Count, "d").End(xlUp).Row).Copy
        Feuil1.Range("S2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        '----etc-------
        '-----------
    End With
End Sub
 
Dernière édition:

Dangdang

XLDnaute Nouveau
Bonsoir, Merci mille milles milles fois à tous pour votre temps. J'ai corrigé et en effet en codant la selection de la feuille voulu, cela fonctionne (cf réponse Dranreb). Maix c'est etonnant, VBA est une grande galaxie parfois incompréhensible
 

Discussions similaires

Réponses
3
Affichages
956
  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
748
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…