transcription en code VBA

  • Initiateur de la discussion Initiateur de la discussion Ssang
  • 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 !

Ssang

XLDnaute Nouveau
Bonjour à tous,

je viens de créer un algorithme en français mais je ne connais pas du tout le langage VBA. Pourriez vous m'aidez pour que le code puisse passer pour une macro excel ?

Merci bcp.

Voici le problème:

Le fichier excel est décomposé en 3 parties: Feuill1, ongl1, ongl2

Sélectionner ongl2.A1
Pour chaque Code de la colonne ongl2.A (de A1 à FIN) faire
- Pour le code sélectionné, rechercher si ce même code existe dans ongl1
SI le code n'existe PAS ALORS
- Créer une nouvelle ligne dans ongl1
- Copier les 11 premières cellules à partir du code trouvé dans ongl2
- Coller ces 11 cellules sur la ligne de l'ongl1 créée par la Macro
- Remplir les 22 cellules suivante avec le caractère "-"
FIN SI
Passer au code suivant (ici, pour exemple, cellule ongl1.B1 puis ongl1.C1 puis ongl1.D1 etc...)
FIN pour
 
Re : transcription en code VBA

Salut Ssang et le forum
Une macro du style :
Code:
Sub test()
'Déclaration ==================================
Dim F1 As Worksheet, F2 As Worksheet
Dim Cel As Range, Cel_Ref As Range, X As Long
'MEI ==========================================
Set F1 = Sheets("Ongl1")
Set F2 = Sheets("Ongl2")
'Traitement ===================================
With F2
    For Each Cel In .Range(.[A1], .Cells(Rows.Count, "A").End(up))
        Set Cel_Ref = F1.Columns(1).Find(Cel)
        If Cel_ref Is Nothing Then
            X = F1.Cells(Rows.Count, "A").End(xlUp).Row + 1
            .Range(Cel, Cel.Offset(0, 10)).Copy F1.Cells(X, "A")
            F1.Range(F1.Cells(X, 12), F1.Cells(X, 34)).Value = "-"
        End If
    Next Cel
End With
End Sub
Ce n'est peut-être pas ce espéré, Mais A1 à fin, pour moi veut dire colonne A, puisqu'on copie les autres cellules de la ligne => donc, la cellule suivante est A2 et non B1.
A+
 
Dernière édition:
Re : transcription en code VBA

En fait j'obtiens une erreur d’exécution 1004 🙁 Et oui, je me suis planté dans l'explication, passer au code suivant veut bien dire passer à la cellule A2. Erreur sur la ligne:

For Each Cel In .Range(.[A1], .Cells(Rows.Count, "A").End(up))
 
Re : transcription en code VBA

Bonjour le fil 🙂,
Gorfael ne m'en voudra pas, j'espère 😛...
Une petite erreur de frappe 🙄...
Code:
    For Each Cel In .Range(.[A1], .Cells(Rows.Count, "A").End(xlUp))
C'est XlUp et non up 😱.
Bonne soirée 😎
 
Re : transcription en code VBA

Salut JNP et le forum
Merci ! Manquerait plus que j'en veuille à qui que ce soit qui corrige mes conneries !
Désolé de ne pas m'être relu correctement et de n'avoir pas testé mon code.
A+
 
- 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
3
Affichages
828
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
551
Réponses
7
Affichages
685
Réponses
0
Affichages
621
Retour